<?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>79778</bug_id>
          
          <creation_ts>2012-02-28 04:23:45 -0800</creation_ts>
          <short_desc>Give StyleRule files of its own</short_desc>
          <delta_ts>2012-02-28 09:44:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>566579</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-28 04:23:45 -0800</bug_when>
    <thetext>It is currently in CSSStyleRule.h/cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566581</commentid>
    <comment_count>1</comment_count>
      <attachid>129230</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-28 04:27:12 -0800</bug_when>
    <thetext>Created attachment 129230
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566582</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-28 04:29:34 -0800</bug_when>
    <thetext>Attachment 129230 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/css/StyleRule.h:35:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566750</commentid>
    <comment_count>3</comment_count>
      <attachid>129230</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-28 08:57:13 -0800</bug_when>
    <thetext>Comment on attachment 129230
patch

rs+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566802</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-28 09:44:53 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/109116</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129230</attachid>
            <date>2012-02-28 04:27:12 -0800</date>
            <delta_ts>2012-02-28 08:57:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>style-rule-file.patch</filename>
            <type>text/plain</type>
            <size>28784</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTA5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTI4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBHaXZlIFN0eWxlUnVsZSBmaWxl
cyBvZiBpdHMgb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTc3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAg
ICogY3NzL0NTU1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlUnVsZTo6c3R5bGUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ1NTU3R5bGVSdWxlKToKKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQu
Y3BwOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGNzcy9TdHlsZVJ1bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
UnVsZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZVNl
cmlhbGl6ZXIuY3BwOgorCiAyMDEyLTAyLTI4ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVy
bWFubkByaW0uY29tPgogCiAgICAgICAgIEludGVncmF0ZSBTVkdVc2VFbGVtZW50IHdpdGhpbiB0
aGUgbmV3IHNoYWRvdyByb290IGNvbmNlcHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAxMDkwOTApCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNTA4LDYgKzUwOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvU2hh
ZG93VmFsdWUuY3BwCiAgICAgY3NzL1N0eWxlTWVkaWEuY3BwCiAgICAgY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwCisgICAgY3NzL1N0eWxlUnVsZS5jcHAKICAgICBjc3MvU3R5bGVTaGVldC5jcHAK
ICAgICBjc3MvU3R5bGVTaGVldExpc3QuY3BwCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclZhbHVl
LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDkwOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDkyLDYgKzE0OTIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZU1lZGlhLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaCBcCisJU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVTaGVldC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExp
c3QuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTA5MDkwKQorKysgU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtNDYxLDYgKzQ2MSw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNzcy9TdHlsZU1lZGlhLmNw
cCBcCiAgICAgY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIFwKKyAgICBjc3MvU3R5bGVSdWxlLmNw
cCBcCiAgICAgY3NzL1N0eWxlU2hlZXQuY3BwIFwKICAgICBjc3MvU3R5bGVTaGVldExpc3QuY3Bw
IFwKICAgICBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIFwKQEAgLTE1OTQsNiArMTU5NSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9TaGFkb3dWYWx1ZS5oIFwKICAgICBjc3MvU3R5bGVN
ZWRpYS5oIFwKICAgICBjc3MvU3R5bGVQcm9wZXJ0eVNldC5oIFwKKyAgICBjc3MvU3R5bGVSdWxl
LmggXAogICAgIGNzcy9TdHlsZVNoZWV0LmggXAogICAgIGNzcy9TdHlsZVNoZWV0TGlzdC5oIFwK
ICAgICBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShy
ZXZpc2lvbiAxMDkwOTApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcg
Y29weSkKQEAgLTIxNjEsNiArMjE2MSw4IEBACiAgICAgICAgICAgICAnY3NzL1N0eWxlTWVkaWEu
aCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwJywKICAgICAgICAgICAg
ICdjc3MvU3R5bGVQcm9wZXJ0eVNldC5oJywKKyAgICAgICAgICAgICdjc3MvU3R5bGVSdWxlLmNw
cCcsCisgICAgICAgICAgICAnY3NzL1N0eWxlUnVsZS5oJywKICAgICAgICAgICAgICdjc3MvU3R5
bGVTaGVldC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZVNoZWV0LmgnLAogICAgICAgICAg
ICAgJ2Nzcy9TdHlsZVNoZWV0TGlzdC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwOTA5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTY3OCw2ICszNTY3OCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxjc3NcU3R5bGVSdWxlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFN0eWxlUnVsZS5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcU3R5bGVTaGVldC5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTA5MDkwKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC01ODk2LDYgKzU4OTYsOCBAQAogCQlFNEFGRDAxMDBEQUYzMzU1MDBGNUY1NUMgLyogU1ZHU01J
TEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0QUZEMDBBMERBRjMzNTQwMEY1RjU1QyAvKiBTVkdTTUlMRWxlbWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0QkJFRDBFMTRGNDAyNUQw
MDNGMEI5OCAvKiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRCQkVEMEMxNEY0MDI1RDAwM0Yw
Qjk4IC8qIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgKi87IH07CiAJCUU0QkJF
RDBGMTRGNDAyNUQwMDNGMEI5OCAvKiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QkJFRDBEMTRG
NDAyNUQwMDNGMEI5OCAvKiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCAqLzsgfTsK
KwkJRTRCQkVENEMxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEJCRUQ0QTE0RkNEQkExMDAzRjBC
OTggLyogU3R5bGVSdWxlLmNwcCAqLzsgfTsKKwkJRTRCQkVENEQxNEZDREJBMTAwM0YwQjk4IC8q
IFN0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRCQkVENEIxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5oICovOyB9OwogCQlFNEMx
Nzg5QTBFRTY5MDM4MDA4MjRENjkgLyogQ1NTU2VsZWN0b3JMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QzE3ODk1MEVFNjkwMzgwMDgyNEQ2
OSAvKiBDU1NTZWxlY3Rvckxpc3QuY3BwICovOyB9OwogCQlFNEMxNzg5QjBFRTY5MDM4MDA4MjRE
NjkgLyogQ1NTU2VsZWN0b3JMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNEMxNzg5NjBFRTY5MDM4MDA4MjRENjkgLyogQ1NTU2VsZWN0b3JMaXN0
LmggKi87IH07CiAJCUU0QzI3OTU4MENGOTc0MTkwMEU5N0I5OCAvKiBSZW5kZXJNZWRpYS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEMyNzk1NjBD
Rjk3NDE5MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuY3BwICovOyB9OwpAQCAtMTI5NTIsNiArMTI5
NTQsOCBAQAogCQlFNEI0MjM4NjBDQkZCNzNDMDBBRjJFQ0UgLyogSlNQcm9ncmVzc0V2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJvZ3Jlc3NFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEJCRUQwQzE0RjQwMjVEMDAzRjBCOTggLyogUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QkJFRDBEMTRGNDAyNUQwMDNGMEI5OCAvKiBQcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUU0QkJFRDRBMTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHlsZVJ1bGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVSdWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTRCQkVENEIxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVJ1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRDMTc4OTUwRUU2OTAzODAwODI0RDY5IC8qIENTU1Nl
bGVjdG9yTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NT
ZWxlY3Rvckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEMxNzg5NjBF
RTY5MDM4MDA4MjRENjkgLyogQ1NTU2VsZWN0b3JMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1NlbGVjdG9yTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNEMyNzk1NjBDRjk3NDE5MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWVkaWEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjAzMjcsNiArMjAzMzEsOCBAQAogCQkJCTBGRjUwMjcwMTAy
QkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmlkbCAqLywKIAkJCQlBODBFNkRGOTBBMTk5MDY3
MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0eVNldC5jcHAgKi8sCiAJCQkJQTgwRTZERkEwQTE5OTA2
NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydHlTZXQuaCAqLywKKwkJCQlFNEJCRUQ0QTE0RkNEQkEx
MDAzRjBCOTggLyogU3R5bGVSdWxlLmNwcCAqLywKKwkJCQlFNEJCRUQ0QjE0RkNEQkExMDAzRjBC
OTggLyogU3R5bGVSdWxlLmggKi8sCiAJCQkJQThFQTgwMDUwQTE5NTE2RTAwQThFRjVGIC8qIFN0
eWxlU2hlZXQuY3BwICovLAogCQkJCUE4RUE4MDA0MEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNo
ZWV0LmggKi8sCiAJCQkJODUwNjU2REMwQUFCNDREOTAwMkQxNUMwIC8qIFN0eWxlU2hlZXQuaWRs
ICovLApAQCAtMjQzODAsNiArMjQzODYsNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1
OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZD
OUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QkJFRDRE
MTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjczMzQs
NiArMjczNDEsNyBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29k
ZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8q
IFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4
RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0QkJFRDRDMTRGQ0RCQTEw
MDNGMEI5OCAvKiBTdHlsZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAkocmV2aXNpb24gMTA5MDkxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1ZhbHVlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9w
ZXJ0eVNldC5oIgorI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIgogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAkocmV2aXNpb24gMTA5MDkxKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDQyICsyMiwx
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgogCi0j
aW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKLSNpbmNsdWRlICJTdHls
ZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU3R5bGVTaGVldC5oIgotCisjaW5jbHVkZSAiU3R5bGVS
dWxlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVN0eWxlUnVsZTo6U3R5bGVSdWxlKGludCBsaW5lLCBDU1NTdHlsZVJ1bGUq
IHdyYXBwZXIpCi0gICAgOiBtX3NvdXJjZUxpbmUobGluZSkKLSAgICAsIG1fY3Nzb21XcmFwcGVy
KHdyYXBwZXIpCi17Ci19Ci0gICAgCi1TdHlsZVJ1bGU6On5TdHlsZVJ1bGUoKQotewotfQotICAg
IAotdm9pZCBTdHlsZVJ1bGU6OmFkZFN1YnJlc291cmNlU3R5bGVVUkxzKExpc3RIYXNoU2V0PEtV
Ukw+JiB1cmxzLCBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KSAKLXsKLSAgICBpZiAoIW1fcHJv
cGVydGllcykKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcHJvcGVydGllcy0+YWRkU3VicmVzb3Vy
Y2VTdHlsZVVSTHModXJscywgc3R5bGVTaGVldCk7Ci19Ci0gICAgCi1DU1NTdHlsZVJ1bGUqIFN0
eWxlUnVsZTo6ZW5zdXJlQ1NTU3R5bGVSdWxlKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9jc3Nv
bVdyYXBwZXIpOwotICAgIHJldHVybiBtX2Nzc29tV3JhcHBlcjsKLX0KLQogQ1NTU3R5bGVSdWxl
OjpDU1NTdHlsZVJ1bGUoQ1NTU3R5bGVTaGVldCogcGFyZW50LCBpbnQgbGluZSkKICAgICA6IENT
U1J1bGUocGFyZW50LCBDU1NSdWxlOjpTVFlMRV9SVUxFKQogICAgICwgbV9zdHlsZVJ1bGUoYWRv
cHRQdHIobmV3IFN0eWxlUnVsZShsaW5lLCB0aGlzKSkpCkBAIC03MSw2ICs0NSwxMSBAQCBDU1NT
dHlsZVJ1bGU6On5DU1NTdHlsZVJ1bGUoKQogICAgIGNsZWFudXAoKTsKIH0KIAorQ1NTU3R5bGVE
ZWNsYXJhdGlvbiogQ1NTU3R5bGVSdWxlOjpzdHlsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c3R5bGVSdWxlLT5wcm9wZXJ0aWVzKCktPmVuc3VyZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uKHRo
aXMpOworfQorCiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgQ1NTU3R5bGVSdWxlKiwgU3RyaW5nPiBT
ZWxlY3RvclRleHRDYWNoZTsKIHN0YXRpYyBTZWxlY3RvclRleHRDYWNoZSYgc2VsZWN0b3JUZXh0
Q2FjaGUoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaAkocmV2aXNpb24gMTA5
MDkxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw0MiArMjMsMTQgQEAKICNkZWZpbmUgQ1NTU3R5bGVSdWxlX2gKIAogI2luY2x1ZGUg
IkNTU1J1bGUuaCIKLSNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKLSNpbmNsdWRlICJTdHls
ZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTU2VsZWN0b3I7
Ci1jbGFzcyBDU1NTdHlsZVJ1bGU7Ci0gICAgCi1jbGFzcyBTdHlsZVJ1bGUgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFN0eWxlUnVsZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVi
bGljOgotICAgIFN0eWxlUnVsZShpbnQgc291cmNlTGluZSwgQ1NTU3R5bGVSdWxlKik7Ci0gICAg
flN0eWxlUnVsZSgpOwotICAgICAgICAgICAgCi0gICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBz
ZWxlY3Rvckxpc3QoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yTGlzdDsgfQotICAgIFN0eWxl
UHJvcGVydHlTZXQqIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0
KCk7IH0KLSAgICAKLSAgICB2b2lkIGFkZFN1YnJlc291cmNlU3R5bGVVUkxzKExpc3RIYXNoU2V0
PEtVUkw+JiB1cmxzLCBDU1NTdHlsZVNoZWV0Kik7Ci0KLSAgICBpbnQgc291cmNlTGluZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlTGluZTsgfQotICAgIAotICAgIENTU1N0eWxlUnVsZSogZW5z
dXJlQ1NTU3R5bGVSdWxlKCkgY29uc3Q7Ci0gICAgCi0gICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVj
dG9yKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4mIHNlbGVjdG9ycykgeyBtX3Nl
bGVjdG9yTGlzdC5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9ycyk7IH0KLSAgICB2b2lkIGFk
b3B0U2VsZWN0b3JMaXN0KENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JM
aXN0LmFkb3B0KHNlbGVjdG9ycyk7IH0KLSAgICB2b2lkIHNldFByb3BlcnRpZXMoUGFzc1JlZlB0
cjxTdHlsZVByb3BlcnR5U2V0PiBwcm9wZXJ0aWVzKSB7IG1fcHJvcGVydGllcyA9IHByb3BlcnRp
ZXM7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fcHJv
cGVydGllczsKLSAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rvckxpc3Q7Ci0gICAgc2lnbmVk
IG1fc291cmNlTGluZTsKLQotICAgIENTU1N0eWxlUnVsZSogbV9jc3NvbVdyYXBwZXI7Ci19Owor
Y2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIFN0eWxlUnVsZTsKIAogY2xhc3MgQ1NT
U3R5bGVSdWxlIDogcHVibGljIENTU1J1bGUgewogcHVibGljOgpAQCAtNzEsNyArNDMsNyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIHNlbGVjdG9yVGV4dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2Vs
ZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYpOwogCi0gICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5
bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlUnVsZS0+cHJvcGVydGllcygpLT5lbnN1cmVSdWxl
Q1NTU3R5bGVEZWNsYXJhdGlvbih0aGlzKTsgfQorICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0
eWxlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogICAgIApJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTA5MDkxKQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05Niw2ICs5Niw3IEBACiAjaW5jbHVkZSAiU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIgog
I2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJTdHlsZVBlbmRpbmdJbWFn
ZS5oIgorI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlR2VuZXJhdGVkSW1h
Z2UuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAJKHJldmlzaW9uIDEwOTA5MSkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCShyZXZpc2lvbiAxMDkwOTEpCShmcm9tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwOjEwOTA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogKEMp
IDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogKEMpIDIwMDItMjAwMyBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAw
NSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKKworI2luY2x1ZGUgIkNTU1BhZ2VS
dWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3IuaCIK
KyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCisjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlN0eWxlU2hlZXQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHlsZVJ1bGU6OlN0eWxlUnVsZShpbnQgbGlu
ZSwgQ1NTU3R5bGVSdWxlKiB3cmFwcGVyKQorICAgIDogbV9zb3VyY2VMaW5lKGxpbmUpCisgICAg
LCBtX2Nzc29tV3JhcHBlcih3cmFwcGVyKQoreworfQorICAgIAorU3R5bGVSdWxlOjp+U3R5bGVS
dWxlKCkKK3sKK30KKyAgICAKK3ZvaWQgU3R5bGVSdWxlOjphZGRTdWJyZXNvdXJjZVN0eWxlVVJM
cyhMaXN0SGFzaFNldDxLVVJMPiYgdXJscywgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkgCit7
CisgICAgaWYgKCFtX3Byb3BlcnRpZXMpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Byb3BlcnRp
ZXMtPmFkZFN1YnJlc291cmNlU3R5bGVVUkxzKHVybHMsIHN0eWxlU2hlZXQpOworfQorICAgIAor
Q1NTU3R5bGVSdWxlKiBTdHlsZVJ1bGU6OmVuc3VyZUNTU1N0eWxlUnVsZSgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1fY3Nzb21XcmFwcGVyKTsKKyAgICByZXR1cm4gbV9jc3NvbVdyYXBwZXI7Cit9
CisKK0NTU1N0eWxlUnVsZTo6Q1NTU3R5bGVSdWxlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgaW50
IGxpbmUpCisgICAgOiBDU1NSdWxlKHBhcmVudCwgQ1NTUnVsZTo6U1RZTEVfUlVMRSkKKyAgICAs
IG1fc3R5bGVSdWxlKGFkb3B0UHRyKG5ldyBTdHlsZVJ1bGUobGluZSwgdGhpcykpKQoreworfQor
CitDU1NTdHlsZVJ1bGU6On5DU1NTdHlsZVJ1bGUoKQoreworICAgIGlmIChtX3N0eWxlUnVsZS0+
cHJvcGVydGllcygpKQorICAgICAgICBtX3N0eWxlUnVsZS0+cHJvcGVydGllcygpLT5jbGVhclBh
cmVudFJ1bGUodGhpcyk7CisgICAgY2xlYW51cCgpOworfQorCit0eXBlZGVmIEhhc2hNYXA8Y29u
c3QgQ1NTU3R5bGVSdWxlKiwgU3RyaW5nPiBTZWxlY3RvclRleHRDYWNoZTsKK3N0YXRpYyBTZWxl
Y3RvclRleHRDYWNoZSYgc2VsZWN0b3JUZXh0Q2FjaGUoKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU2VsZWN0b3JUZXh0Q2FjaGUsIGNhY2hlLCAoKSk7CisgICAgcmV0dXJuIGNhY2hlOwor
fQorCitpbmxpbmUgdm9pZCBDU1NTdHlsZVJ1bGU6OmNsZWFudXAoKQoreworICAgIGlmIChoYXND
YWNoZWRTZWxlY3RvclRleHQoKSkgeworICAgICAgICBzZWxlY3RvclRleHRDYWNoZSgpLnJlbW92
ZSh0aGlzKTsKKyAgICAgICAgc2V0SGFzQ2FjaGVkU2VsZWN0b3JUZXh0KGZhbHNlKTsKKyAgICB9
Cit9CisKK1N0cmluZyBDU1NTdHlsZVJ1bGU6OmdlbmVyYXRlU2VsZWN0b3JUZXh0KCkgY29uc3QK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZm9yIChDU1NTZWxlY3RvciogcyA9
IG1fc3R5bGVSdWxlLT5zZWxlY3Rvckxpc3QoKS5maXJzdCgpOyBzOyBzID0gQ1NTU2VsZWN0b3JM
aXN0OjpuZXh0KHMpKSB7CisgICAgICAgIGlmIChzICE9IG1fc3R5bGVSdWxlLT5zZWxlY3Rvckxp
c3QoKS5maXJzdCgpKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHMtPnNlbGVjdG9yVGV4dCgpKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1
aWxkZXIudG9TdHJpbmcoKTsKK30KKworU3RyaW5nIENTU1N0eWxlUnVsZTo6c2VsZWN0b3JUZXh0
KCkgY29uc3QKK3sKKyAgICBpZiAoaGFzQ2FjaGVkU2VsZWN0b3JUZXh0KCkpIHsKKyAgICAgICAg
QVNTRVJUKHNlbGVjdG9yVGV4dENhY2hlKCkuY29udGFpbnModGhpcykpOworICAgICAgICByZXR1
cm4gc2VsZWN0b3JUZXh0Q2FjaGUoKS5nZXQodGhpcyk7CisgICAgfQorCisgICAgQVNTRVJUKCFz
ZWxlY3RvclRleHRDYWNoZSgpLmNvbnRhaW5zKHRoaXMpKTsKKyAgICBTdHJpbmcgdGV4dCA9IGdl
bmVyYXRlU2VsZWN0b3JUZXh0KCk7CisgICAgc2VsZWN0b3JUZXh0Q2FjaGUoKS5zZXQodGhpcywg
dGV4dCk7CisgICAgc2V0SGFzQ2FjaGVkU2VsZWN0b3JUZXh0KHRydWUpOworICAgIHJldHVybiB0
ZXh0OworfQorCit2b2lkIENTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3JUZXh0KQoreworICAgIERvY3VtZW50KiBkb2MgPSAwOworICAgIGlmIChDU1NT
dHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gcGFyZW50U3R5bGVTaGVldCgpKQorICAgICAgICBkb2Mg
PSBzdHlsZVNoZWV0LT5maW5kRG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0
dXJuOworCisgICAgQ1NTUGFyc2VyIHA7CisgICAgQ1NTU2VsZWN0b3JMaXN0IHNlbGVjdG9yTGlz
dDsKKyAgICBwLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3JUZXh0LCBkb2MsIHNlbGVjdG9yTGlzdCk7
CisgICAgaWYgKCFzZWxlY3Rvckxpc3QuZmlyc3QoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
U3RyaW5nIG9sZFNlbGVjdG9yVGV4dCA9IHRoaXMtPnNlbGVjdG9yVGV4dCgpOworICAgIG1fc3R5
bGVSdWxlLT5hZG9wdFNlbGVjdG9yTGlzdChzZWxlY3Rvckxpc3QpOworCisgICAgaWYgKGhhc0Nh
Y2hlZFNlbGVjdG9yVGV4dCgpKSB7CisgICAgICAgIEFTU0VSVChzZWxlY3RvclRleHRDYWNoZSgp
LmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgc2VsZWN0b3JUZXh0Q2FjaGUoKS5zZXQodGhpcywg
Z2VuZXJhdGVTZWxlY3RvclRleHQoKSk7CisgICAgfQorCisgICAgaWYgKHRoaXMtPnNlbGVjdG9y
VGV4dCgpID09IG9sZFNlbGVjdG9yVGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jLT5z
dHlsZVNlbGVjdG9yQ2hhbmdlZChEZWZlclJlY2FsY1N0eWxlKTsKK30KKworU3RyaW5nIENTU1N0
eWxlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHJlc3VsdCA9IHNlbGVjdG9y
VGV4dCgpOworCisgICAgcmVzdWx0ICs9ICIgeyAiOworICAgIHJlc3VsdCArPSBtX3N0eWxlUnVs
ZS0+cHJvcGVydGllcygpLT5hc1RleHQoKTsKKyAgICByZXN1bHQgKz0gIn0iOworCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZS5jcHAJKHJldmlzaW9uIDEwOTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIChDKSAx
OTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqIChDKSAyMDAyLTIwMDMgRGly
ayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUs
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTggKzIwLDcgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCi0KLSNpbmNsdWRl
ICJDU1NQYWdlUnVsZS5oIgotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Nl
bGVjdG9yLmgiCi0jaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgotI2luY2x1ZGUgIlN0eWxlZEVsZW1l
bnQuaCIKLSNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNTgsOTYgKzQ3LDQgQEAgQ1NTU3R5bGVSdWxlKiBTdHlsZVJ1bGU6OmVuc3VyZUNT
U1N0eWxlUgogICAgIHJldHVybiBtX2Nzc29tV3JhcHBlcjsKIH0KIAotQ1NTU3R5bGVSdWxlOjpD
U1NTdHlsZVJ1bGUoQ1NTU3R5bGVTaGVldCogcGFyZW50LCBpbnQgbGluZSkKLSAgICA6IENTU1J1
bGUocGFyZW50LCBDU1NSdWxlOjpTVFlMRV9SVUxFKQotICAgICwgbV9zdHlsZVJ1bGUoYWRvcHRQ
dHIobmV3IFN0eWxlUnVsZShsaW5lLCB0aGlzKSkpCi17Ci19Ci0KLUNTU1N0eWxlUnVsZTo6fkNT
U1N0eWxlUnVsZSgpCi17Ci0gICAgaWYgKG1fc3R5bGVSdWxlLT5wcm9wZXJ0aWVzKCkpCi0gICAg
ICAgIG1fc3R5bGVSdWxlLT5wcm9wZXJ0aWVzKCktPmNsZWFyUGFyZW50UnVsZSh0aGlzKTsKLSAg
ICBjbGVhbnVwKCk7Ci19Ci0KLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBDU1NTdHlsZVJ1bGUqLCBT
dHJpbmc+IFNlbGVjdG9yVGV4dENhY2hlOwotc3RhdGljIFNlbGVjdG9yVGV4dENhY2hlJiBzZWxl
Y3RvclRleHRDYWNoZSgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTZWxlY3RvclRleHRD
YWNoZSwgY2FjaGUsICgpKTsKLSAgICByZXR1cm4gY2FjaGU7Ci19Ci0KLWlubGluZSB2b2lkIENT
U1N0eWxlUnVsZTo6Y2xlYW51cCgpCi17Ci0gICAgaWYgKGhhc0NhY2hlZFNlbGVjdG9yVGV4dCgp
KSB7Ci0gICAgICAgIHNlbGVjdG9yVGV4dENhY2hlKCkucmVtb3ZlKHRoaXMpOwotICAgICAgICBz
ZXRIYXNDYWNoZWRTZWxlY3RvclRleHQoZmFsc2UpOwotICAgIH0KLX0KLQotU3RyaW5nIENTU1N0
eWxlUnVsZTo6Z2VuZXJhdGVTZWxlY3RvclRleHQoKSBjb25zdAotewotICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBmb3IgKENTU1NlbGVjdG9yKiBzID0gbV9zdHlsZVJ1bGUtPnNlbGVj
dG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQocykpIHsKLSAg
ICAgICAgaWYgKHMgIT0gbV9zdHlsZVJ1bGUtPnNlbGVjdG9yTGlzdCgpLmZpcnN0KCkpCi0gICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQocy0+
c2VsZWN0b3JUZXh0KCkpOwotICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwot
fQotCi1TdHJpbmcgQ1NTU3R5bGVSdWxlOjpzZWxlY3RvclRleHQoKSBjb25zdAotewotICAgIGlm
IChoYXNDYWNoZWRTZWxlY3RvclRleHQoKSkgewotICAgICAgICBBU1NFUlQoc2VsZWN0b3JUZXh0
Q2FjaGUoKS5jb250YWlucyh0aGlzKSk7Ci0gICAgICAgIHJldHVybiBzZWxlY3RvclRleHRDYWNo
ZSgpLmdldCh0aGlzKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQoIXNlbGVjdG9yVGV4dENhY2hlKCku
Y29udGFpbnModGhpcykpOwotICAgIFN0cmluZyB0ZXh0ID0gZ2VuZXJhdGVTZWxlY3RvclRleHQo
KTsKLSAgICBzZWxlY3RvclRleHRDYWNoZSgpLnNldCh0aGlzLCB0ZXh0KTsKLSAgICBzZXRIYXND
YWNoZWRTZWxlY3RvclRleHQodHJ1ZSk7Ci0gICAgcmV0dXJuIHRleHQ7Ci19Ci0KLXZvaWQgQ1NT
U3R5bGVSdWxlOjpzZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQpCi17
Ci0gICAgRG9jdW1lbnQqIGRvYyA9IDA7Ci0gICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQgPSBwYXJlbnRTdHlsZVNoZWV0KCkpCi0gICAgICAgIGRvYyA9IHN0eWxlU2hlZXQtPmZpbmRE
b2N1bWVudCgpOwotICAgIGlmICghZG9jKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDU1NQYXJz
ZXIgcDsKLSAgICBDU1NTZWxlY3Rvckxpc3Qgc2VsZWN0b3JMaXN0OwotICAgIHAucGFyc2VTZWxl
Y3RvcihzZWxlY3RvclRleHQsIGRvYywgc2VsZWN0b3JMaXN0KTsKLSAgICBpZiAoIXNlbGVjdG9y
TGlzdC5maXJzdCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgb2xkU2VsZWN0b3JU
ZXh0ID0gdGhpcy0+c2VsZWN0b3JUZXh0KCk7Ci0gICAgbV9zdHlsZVJ1bGUtPmFkb3B0U2VsZWN0
b3JMaXN0KHNlbGVjdG9yTGlzdCk7Ci0KLSAgICBpZiAoaGFzQ2FjaGVkU2VsZWN0b3JUZXh0KCkp
IHsKLSAgICAgICAgQVNTRVJUKHNlbGVjdG9yVGV4dENhY2hlKCkuY29udGFpbnModGhpcykpOwot
ICAgICAgICBzZWxlY3RvclRleHRDYWNoZSgpLnNldCh0aGlzLCBnZW5lcmF0ZVNlbGVjdG9yVGV4
dCgpKTsKLSAgICB9Ci0KLSAgICBpZiAodGhpcy0+c2VsZWN0b3JUZXh0KCkgPT0gb2xkU2VsZWN0
b3JUZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBkb2MtPnN0eWxlU2VsZWN0b3JDaGFuZ2Vk
KERlZmVyUmVjYWxjU3R5bGUpOwotfQotCi1TdHJpbmcgQ1NTU3R5bGVSdWxlOjpjc3NUZXh0KCkg
Y29uc3QKLXsKLSAgICBTdHJpbmcgcmVzdWx0ID0gc2VsZWN0b3JUZXh0KCk7Ci0KLSAgICByZXN1
bHQgKz0gIiB7ICI7Ci0gICAgcmVzdWx0ICs9IG1fc3R5bGVSdWxlLT5wcm9wZXJ0aWVzKCktPmFz
VGV4dCgpOwotICAgIHJlc3VsdCArPSAifSI7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCShyZXZpc2lv
biAxMDkwOTEpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaDoxMDkwOTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw5MSBAQAorLyoKKyAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKKyAqIChDKSAyMDAyLTIwMDMgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDIsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaWZuZGVmIENTU1N0eWxlUnVsZV9oCisjZGVmaW5lIENTU1N0eWxlUnVsZV9oCisKKyNp
bmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCisjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1Nl
bGVjdG9yOworY2xhc3MgQ1NTU3R5bGVSdWxlOworICAgIAorY2xhc3MgU3R5bGVSdWxlIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdHlsZVJ1bGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBTdHlsZVJ1bGUoaW50IHNvdXJjZUxpbmUsIENTU1N0eWxlUnVsZSop
OworICAgIH5TdHlsZVJ1bGUoKTsKKyAgICAgICAgICAgIAorICAgIGNvbnN0IENTU1NlbGVjdG9y
TGlzdCYgc2VsZWN0b3JMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvckxpc3Q7IH0KKyAg
ICBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0
aWVzLmdldCgpOyB9CisgICAgCisgICAgdm9pZCBhZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyhMaXN0
SGFzaFNldDxLVVJMPiYgdXJscywgQ1NTU3R5bGVTaGVldCopOworCisgICAgaW50IHNvdXJjZUxp
bmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUxpbmU7IH0KKyAgICAKKyAgICBDU1NTdHlsZVJ1
bGUqIGVuc3VyZUNTU1N0eWxlUnVsZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgYWRvcHRTZWxl
Y3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMp
IHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CisgICAg
dm9pZCBhZG9wdFNlbGVjdG9yTGlzdChDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9ycykgeyBtX3Nl
bGVjdG9yTGlzdC5hZG9wdChzZWxlY3RvcnMpOyB9CisgICAgdm9pZCBzZXRQcm9wZXJ0aWVzKFBh
c3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gcHJvcGVydGllcykgeyBtX3Byb3BlcnRpZXMgPSBw
cm9wZXJ0aWVzOyB9CisgICAgCitwcml2YXRlOgorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0
PiBtX3Byb3BlcnRpZXM7CisgICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OworICAg
IHNpZ25lZCBtX3NvdXJjZUxpbmU7CisKKyAgICBDU1NTdHlsZVJ1bGUqIG1fY3Nzb21XcmFwcGVy
OworfTsKKworY2xhc3MgQ1NTU3R5bGVSdWxlIDogcHVibGljIENTU1J1bGUgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1N0eWxlUnVsZT4gY3JlYXRlKENTU1N0eWxlU2hlZXQq
IHBhcmVudCwgaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENT
U1N0eWxlUnVsZShwYXJlbnQsIGxpbmUpKTsKKyAgICB9CisgICAgfkNTU1N0eWxlUnVsZSgpOwor
CisgICAgU3RyaW5nIHNlbGVjdG9yVGV4dCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2VsZWN0b3JU
ZXh0KGNvbnN0IFN0cmluZyYpOworCisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUoKSBj
b25zdCB7IHJldHVybiBtX3N0eWxlUnVsZS0+cHJvcGVydGllcygpLT5lbnN1cmVSdWxlQ1NTU3R5
bGVEZWNsYXJhdGlvbih0aGlzKTsgfQorCisgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAg
ICAKKyAgICBTdHlsZVJ1bGUqIHN0eWxlUnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVSdWxl
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgQ1NTU3R5bGVSdWxlKENTU1N0eWxlU2hlZXQqIHBh
cmVudCwgaW50IHNvdXJjZUxpbmUpOworCisgICAgdm9pZCBjbGVhbnVwKCk7CisgICAgU3RyaW5n
IGdlbmVyYXRlU2VsZWN0b3JUZXh0KCkgY29uc3Q7CisKKyAgICBPd25QdHI8U3R5bGVSdWxlPiBt
X3N0eWxlUnVsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENT
U1N0eWxlUnVsZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCShyZXZpc2lvbiAxMDkwOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NyArMSw3IEBACiAvKgogICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogKEMpIDIwMDItMjAwMyBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDYsIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSwxMCArMTksOSBA
QAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmbmRlZiBDU1NTdHls
ZVJ1bGVfaAotI2RlZmluZSBDU1NTdHlsZVJ1bGVfaAorI2lmbmRlZiBTdHlsZVJ1bGVfaAorI2Rl
ZmluZSBTdHlsZVJ1bGVfaAogCi0jaW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1Nl
bGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgpAQCAtMzAsOSArMjksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIENTU1NlbGVjdG9yOwogY2xhc3MgQ1NTU3R5bGVSdWxlOwotICAgIAorCiBjbGFz
cyBTdHlsZVJ1bGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0eWxlUnVsZSk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjAsMzIgKzU4LDYgQEAgcHJpdmF0ZToK
ICAgICBDU1NTdHlsZVJ1bGUqIG1fY3Nzb21XcmFwcGVyOwogfTsKIAotY2xhc3MgQ1NTU3R5bGVS
dWxlIDogcHVibGljIENTU1J1bGUgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENT
U1N0eWxlUnVsZT4gY3JlYXRlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgaW50IGxpbmUpCi0gICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU1N0eWxlUnVsZShwYXJlbnQsIGxpbmUp
KTsKLSAgICB9Ci0gICAgfkNTU1N0eWxlUnVsZSgpOwotCi0gICAgU3RyaW5nIHNlbGVjdG9yVGV4
dCgpIGNvbnN0OwotICAgIHZvaWQgc2V0U2VsZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYpOwotCi0g
ICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlUnVs
ZS0+cHJvcGVydGllcygpLT5lbnN1cmVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbih0aGlzKTsgfQot
Ci0gICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKLSAgICAKLSAgICBTdHlsZVJ1bGUqIHN0eWxl
UnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVSdWxlLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgQ1NTU3R5bGVSdWxlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgaW50IHNvdXJjZUxpbmUpOwot
Ci0gICAgdm9pZCBjbGVhbnVwKCk7Ci0gICAgU3RyaW5nIGdlbmVyYXRlU2VsZWN0b3JUZXh0KCkg
Y29uc3Q7Ci0KLSAgICBPd25QdHI8U3R5bGVSdWxlPiBtX3N0eWxlUnVsZTsKLX07Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIENTU1N0eWxlUnVsZV9oCisjZW5kaWYgLy8g
U3R5bGVSdWxlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAJ
KHJldmlzaW9uIDEwOTA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlF1YWxpZmll
ZE5hbWUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVy
dHlTZXQuaCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAJKHJldmlzaW9uIDEwOTA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRl
ICJOb2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5
U2V0LmgiCisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3Qu
aCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAJKHJldmlz
aW9uIDEwOTA5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAi
U2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0UHJvZmlsZS5oIgorI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldv
cmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJYTUxI
dHRwUmVxdWVzdC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24gMTA5MDkxKQorKysgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2
ICs0Niw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiTm9kZS5o
IgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVk
ZSAiU3R5bGVTaGVldExpc3QuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgi
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCShyZXZpc2lvbiAx
MDkwOTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJT
dHlsZUNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgorI2luY2x1ZGUgIlN0
eWxlUnVsZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2ViZWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YmVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDkwOTIpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2ViZWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IlN0eWxlUHJvcGVydHlTZXQuaCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpZiBVU0UoSlND
KQogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgo=
</data>
<flag name="review"
          id="131852"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>