<?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>119543</bug_id>
          
          <creation_ts>2013-08-07 05:32:13 -0700</creation_ts>
          <short_desc>Create WebCore/style and move StyleResolveTree there</short_desc>
          <delta_ts>2013-08-07 07:22:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>915104</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-07 05:32:13 -0700</bug_when>
    <thetext>WebCore/css is bloated. We should move the internal style representation and the style resolver related code to a directory of their own. CSS language related code including parser and CSSOM stays under css.

Things named StyleFoo should generally move under WebCore/style. They should also be moved to the Style namespace at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915105</commentid>
    <comment_count>1</comment_count>
      <attachid>208255</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-07 05:36:01 -0700</bug_when>
    <thetext>Created attachment 208255
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915108</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-07 05:38:59 -0700</bug_when>
    <thetext>Attachment 208255 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/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.am&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCoreCommon.props&apos;, u&apos;Source/WebCore/WebCore.vcxproj/copyForwardingHeaders.cmd&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/css/StyleResolveTree.cpp&apos;, u&apos;Source/WebCore/css/StyleResolveTree.h&apos;, u&apos;Source/WebCore/style/StyleResolveTree.cpp&apos;, u&apos;Source/WebCore/style/StyleResolveTree.h&apos;]&quot; exit_code: 1
Source/WebCore/CMakeLists.txt:2329:  No trailing spaces  [whitespace/trailing] [5]
Total errors found: 1 in 11 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>915110</commentid>
    <comment_count>3</comment_count>
      <attachid>208255</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-07 05:44:57 -0700</bug_when>
    <thetext>Comment on attachment 208255
patch

Attachment 208255 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1375204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915111</commentid>
    <comment_count>4</comment_count>
      <attachid>208255</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-07 05:46:07 -0700</bug_when>
    <thetext>Comment on attachment 208255
patch

Attachment 208255 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1376257</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915114</commentid>
    <comment_count>5</comment_count>
      <attachid>208259</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-07 05:53:33 -0700</bug_when>
    <thetext>Created attachment 208259
another</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915120</commentid>
    <comment_count>6</comment_count>
      <attachid>208259</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-07 06:01:49 -0700</bug_when>
    <thetext>Comment on attachment 208259
another

r=me. Have a nice time with the bots!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915136</commentid>
    <comment_count>7</comment_count>
      <attachid>208259</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-07 07:21:02 -0700</bug_when>
    <thetext>Comment on attachment 208259
another

Attachment 208259 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1378234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915137</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-07 07:22:00 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/153785</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208255</attachid>
            <date>2013-08-07 05:36:01 -0700</date>
            <delta_ts>2013-08-07 05:53:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>create-style-dir.patch</filename>
            <type>text/plain</type>
            <size>42887</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mzc4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA4LTA3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgV2ViQ29yZS9zdHls
ZSBhbmQgbW92ZSBTdHlsZVJlc29sdmVUcmVlIHRoZXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlL2NzcyBpcyBibG9hdGVkLiBXZSBzaG91
bGQgbW92ZSB0aGUgaW50ZXJuYWwgc3R5bGUgcmVwcmVzZW50YXRpb24gYW5kIHRoZSBzdHlsZSBy
ZXNvbHZlcgorICAgICAgICByZWxhdGVkIGNvZGUgdG8gYSBkaXJlY3Rvcnkgb2YgdGhlaXIgb3du
LiBDU1MgbGFuZ3VhZ2UgcmVsYXRlZCBjb2RlIGluY2x1ZGluZyBwYXJzZXIgYW5kIAorICAgICAg
ICBDU1NPTSBzdGF5cyB1bmRlciBjc3MuCisKKyAgICAgICAgVGhpbmdzIG5hbWVkIFN0eWxlRm9v
IHNob3VsZCBnZW5lcmFsbHkgbW92ZSB1bmRlciBXZWJDb3JlL3N0eWxlLiBUaGV5IHNob3VsZCBh
bHNvIGJlIG1vdmVkIHRvCisgICAgICAgIHRoZSBTdHlsZSBuYW1lc3BhY2UgYXQgdGhlIHNhbWUg
dGltZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlQ29tbW9uLnByb3BzOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9jb3B5Rm9yd2FyZGluZ0hlYWRlcnMuY21kOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlVHJlZS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZVRyZWUuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBzdHlsZTogQWRkZWQuCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlVHJl
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmNw
cC4KKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVUcmVlLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmguCisKIDIwMTMtMDgtMDcgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc3R5bGUgcmVjYWxjdWxh
dGlvbiBvdXQgZnJvbSBFbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MTUzNzgzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDYgKzgxLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQkNPUkVfRElSfS9yZW5kZXJpbmcvc3R5bGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRl
cmluZy9zdmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N0b3JhZ2UiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3N0eWxlIgogICAgICIke1dFQkNPUkVfRElSfS9zdmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3N2Zy9hbmltYXRpb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKQEAgLTEw
OTEsNyArMTA5Miw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKICAgICBjc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHAKICAgICBjc3MvU3R5
bGVSZXNvbHZlci5jcHAKLSAgICBjc3MvU3R5bGVSZXNvbHZlVHJlZS5jcHAKICAgICBjc3MvU3R5
bGVSdWxlLmNwcAogICAgIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCiAgICAgY3NzL1N0eWxlU2Nv
cGVSZXNvbHZlci5jcHAKQEAgLTIzMjYsNiArMjMyNiw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBzdG9yYWdlL1N0b3JhZ2VTdHJhdGVneS5jcHAKICAgICBzdG9yYWdlL1N0b3JhZ2VTeW5j
TWFuYWdlci5jcHAKICAgICBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAorICAgIAorICAgIHN0
eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCiAKICAgICBzdmcvQ29sb3JEaXN0YW5jZS5jcHAKICAg
ICBzdmcvU1ZHQUVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
MTUzNzgyKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTk1LDYgKzk1LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlIFwK
KwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdHlsZSBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYkNvcmUvc3ZnIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9u
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MgXApJbmRleDogU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNTM3ODMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUxLDggKzI3NTEs
NiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2hvcnRoYW5kLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBcCi0JU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZVRyZWUuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlVHJlZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxl
SW1wb3J0LmNwcCBcCkBAIC00NzE3LDYgKzQ3MTUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZVRyYWNrZXJDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlVHJlZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuaCBc
CiAJU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0Fic3RyYWN0V29ya2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFj
dFdvcmtlci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTUzNzgzKQorKysgU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw2IEBAIFNP
VVJDRVMgKz0gXAogICAgIGNzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBcCiAgICAgY3NzL1N0eWxl
UHJvcGVydHlTaG9ydGhhbmQuY3BwIFwKICAgICBjc3MvU3R5bGVSZXNvbHZlci5jcHAgXAotICAg
IGNzcy9TdHlsZVJlc29sdmVUcmVlLmNwcCBcCiAgICAgY3NzL1N0eWxlUnVsZS5jcHAgXAogICAg
IGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwIFwKICAgICBjc3MvU3R5bGVTY29wZVJlc29sdmVyLmNw
cCBcCkBAIC0xMjgyLDYgKzEyODEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBzdG9yYWdlL1N0b3Jh
Z2VTeW5jTWFuYWdlci5jcHAgXAogICAgIHN0b3JhZ2UvU3RvcmFnZVN0cmF0ZWd5LmNwcCBcCiAg
ICAgc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAgXAorICAgIHN0eWxlL1N0eWxlUmVzb2x2ZVRy
ZWUuY3BwIFwKICAgICB0ZXN0aW5nL0ludGVybmFscy5jcHAgXAogICAgIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAgXAogICAgIHhtbC9ET01QYXJzZXIuY3BwIFwKQEAgLTE1NDMsNyArMTU0
Myw2IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9TdHlsZVByb3BlcnR5U2V0LmggXAogICAgIGNz
cy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmggXAogICAgIGNzcy9TdHlsZVJlc29sdmVyLmggXAot
ICAgIGNzcy9TdHlsZVJlc29sdmVUcmVlLmggXAogICAgIGNzcy9TdHlsZVJ1bGUuaCBcCiAgICAg
Y3NzL1N0eWxlUnVsZUltcG9ydC5oIFwKICAgICBjc3MvU3R5bGVTaGVldC5oIFwKQEAgLTI2MDIs
NiArMjYwMSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHN0b3JhZ2UvU3RvcmFnZVRocmVhZC5oIFwK
ICAgICBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmggXAogICAgIHN0b3JhZ2UvU3RvcmFnZVRyYWNr
ZXJDbGllbnQuaCBcCisgICAgc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5oIFwKICAgICBzdmcvYW5p
bWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmggXAogICAgIHN2Zy9hbmltYXRpb24vU01JTFRpbWUu
aCBcCiAgICAgc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTUz
NzgzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtOTM1Myw3ICs5MzUzLDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcU3R5bGVSZXNvbHZlVHJlZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcU3R5bGVSdWxlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGNzc1xTdHlsZVJ1bGVJbXBvcnQuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXFN0eWxlU2hlZXQuY3BwIiAvPgpAQCAtMTc2MjIsNiArMTc2MjEs
NyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3RvcmFnZVxTdG9yYWdlU3luY01hbmFn
ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3RvcmFnZVxTdG9yYWdlVGhy
ZWFkLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFnZVRy
YWNrZXIuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVSZXNv
bHZlVHJlZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxicmlkZ2VcanNjXEJy
aWRnZUpTQy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxicmlkZ2VcY1xjX2Ns
YXNzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJyaWRnZVxjXGNfaW5zdGFu
Y2UuY3BwIiAvPgpAQCAtMTk4NjcsNyArMTk4NjcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cY3NzXFN0eWxlUHJvcGVydHlTZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGNzc1xTdHlsZVByb3BlcnR5U2hvcnRoYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxjc3NcU3R5bGVSZXNvbHZlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cY3NzXFN0eWxlUmVzb2x2ZVRyZWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGNzc1xTdHlsZVJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xTdHls
ZVJ1bGVJbXBvcnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xTdHlsZVNo
ZWV0LmgiIC8+CkBAIC0yMDk0MCw2ICsyMDkzOSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxzdG9yYWdlXFN0b3JhZ2VTeW5jTWFuYWdlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cc3RvcmFnZVxTdG9yYWdlVGhyZWFkLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxzdG9yYWdlXFN0b3JhZ2VUcmFja2VyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVUcmVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxicmlkZ2VcQnJpZGdlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxi
cmlkZ2VcanNjXEJyaWRnZUpTQy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYnJp
ZGdlXGNcY19jbGFzcy5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmVDb21tb24ucHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmVDb21tb24ucHJvcHMJKHJldmlzaW9uIDE1Mzc4MikKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlQ29tbW9uLnByb3BzCSh3b3JraW5nIGNv
cHkpCkBAIC03LDcgKzcsNyBAQAogICA8L1Byb3BlcnR5R3JvdXA+DQogICA8SXRlbURlZmluaXRp
b25Hcm91cD4NCiAgICAgPENsQ29tcGlsZT4NCi0gICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz4kKFByb2plY3REaXIpLi47JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcZmlsZXN5c3Rl
bTskKFByb2plY3REaXIpLi5cTW9kdWxlc1xnZW9sb2NhdGlvbjskKFByb2plY3REaXIpLi5cTW9k
dWxlc1xpbmRleGVkZGI7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcbWVkaWFzb3VyY2U7JChQcm9q
ZWN0RGlyKS4uXE1vZHVsZXNcbmF2aWdhdG9yY29udGVudHV0aWxzOyQoUHJvamVjdERpcikuLlxN
b2R1bGVzXHNwZWVjaDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xwcm94aW1pdHk7JChQcm9qZWN0
RGlyKS4uXE1vZHVsZXNccXVvdGE7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcbm90aWZpY2F0aW9u
czskKFByb2plY3REaXIpLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZTskKFByb2plY3REaXIpLi5cTW9k
dWxlc1x3ZWJzb2NrZXRzOyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5OyQoUHJvamVjdERp
cikuLlxhY2Nlc3NpYmlsaXR5XHdpbjskKFByb2plY3REaXIpLi5cYnJpZGdlOyQoUHJvamVjdERp
cikuLlxicmlkZ2VcYzskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYzskKFByb2plY3REaXIpLi5c
Y3NzOyQoUHJvamVjdERpcikuLlxlZGl0aW5nOyQoUHJvamVjdERpcikuLlxmaWxlYXBpOyQoUHJv
amVjdERpcikuLlxyZW5kZXJpbmc7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWw7JChQ
cm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZTskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN2
ZzskKFByb2plY3REaXIpLi5cYmluZGluZ3M7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVy
aWM7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzOyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xq
c1xzcGVjaWFsaXphdGlvbjskKFByb2plY3REaXIpLi5cZG9tOyQoUHJvamVjdERpcikuLlxkb21c
ZGVmYXVsdDskKFByb2plY3REaXIpLi5caGlzdG9yeTskKFByb2plY3REaXIpLi5caHRtbDskKFBy
b2plY3REaXIpLi5caHRtbFxjYW52YXM7JChQcm9qZWN0RGlyKS4uXGh0bWxcZm9ybXM7JChQcm9q
ZWN0RGlyKS4uXGh0bWxccGFyc2VyOyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRvdzskKFByb2pl
Y3REaXIpLi5caHRtbFx0cmFjazskKFByb2plY3REaXIpLi5caW5zcGVjdG9yOyQoUHJvamVjdERp
cikuLlxsb2FkZXI7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBjYWNoZTskKFByb2plY3REaXIp
Li5cbG9hZGVyXGFyY2hpdmU7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmOyQoUHJv
amVjdERpcikuLlxsb2FkZXJcY2FjaGU7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29uOyQoUHJv
amVjdERpcikuLlxtYXRobWw7JChQcm9qZWN0RGlyKS4uXHBhZ2U7JChQcm9qZWN0RGlyKS4uXHBh
Z2VcYW5pbWF0aW9uOyQoUHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZzskKFByb2plY3REaXIp
Li5ccGFnZVx3aW47JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtOyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVxhbmltYXRpb247JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2s7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luOyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxuZXR3b3JrOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdp
bjskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2Y7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdy
YXBoaWNzOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYTskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcY3B1XGFybVxmaWx0ZXJzOyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVxncmFwaGljc1xmaWx0ZXJzOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXGFybTskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGU7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXM7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXHRleHQ7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2Rlcjsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luOyQoUHJvamVjdERpcikuLlx4bWw7
JChQcm9qZWN0RGlyKS4uXHhtbFxwYXJzZXI7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iajMy
XFdlYkNvcmVcRGVyaXZlZFNvdXJjZXM7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnM7JChQcm9qZWN0
RGlyKS4uXHBsdWdpbnNcd2luOyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uOyQoUHJvamVj
dERpcikuLlxzdmdcZ3JhcGhpY3M7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzOyQoUHJv
amVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVyczskKFByb2plY3REaXIpLi5cc3ZnOyQoUHJv
amVjdERpcikuLlx0ZXN0aW5nOyQoUHJvamVjdERpcikuLlx3bWw7JChQcm9qZWN0RGlyKS4uXHN0
b3JhZ2U7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tldHM7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnM7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGU7JChDb25maWd1cmF0aW9uQnVpbGREaXIp
XGluY2x1ZGVccHJpdmF0ZTskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZTskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3Jp
cHRDb3JlOyQoUHJvamVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVyczskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZ3B1OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xl
Z2w7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHN1cmZhY2VzOyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljc1xzdXJmYWNlc1xlZ2w7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXGdyYXBoaWNzXG9wZW5nbDskKFdlYktpdF9MaWJyYXJpZXMpXGluY2x1ZGU7JChXZWJLaXRf
TGlicmFyaWVzKVxpbmNsdWRlXHByaXZhdGU7JChXZWJLaXRfTGlicmFyaWVzKVxpbmNsdWRlXHBy
aXZhdGVcSmF2YVNjcmlwdENvcmU7JChXZWJLaXRfTGlicmFyaWVzKVxpbmNsdWRlXHNxbGl0ZTsk
KFdlYktpdF9MaWJyYXJpZXMpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmU7JChXZWJLaXRfTGlicmFy
aWVzKVxpbmNsdWRlXHpsaWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRp
b25hbEluY2x1ZGVEaXJlY3Rvcmllcz4NCisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz4kKFByb2plY3REaXIpLi47JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcZmlsZXN5c3RlbTsk
KFByb2plY3REaXIpLi5cTW9kdWxlc1xnZW9sb2NhdGlvbjskKFByb2plY3REaXIpLi5cTW9kdWxl
c1xpbmRleGVkZGI7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcbWVkaWFzb3VyY2U7JChQcm9qZWN0
RGlyKS4uXE1vZHVsZXNcbmF2aWdhdG9yY29udGVudHV0aWxzOyQoUHJvamVjdERpcikuLlxNb2R1
bGVzXHNwZWVjaDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xwcm94aW1pdHk7JChQcm9qZWN0RGly
KS4uXE1vZHVsZXNccXVvdGE7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcbm90aWZpY2F0aW9uczsk
KFByb2plY3REaXIpLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZTskKFByb2plY3REaXIpLi5cTW9kdWxl
c1x3ZWJzb2NrZXRzOyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5OyQoUHJvamVjdERpciku
LlxhY2Nlc3NpYmlsaXR5XHdpbjskKFByb2plY3REaXIpLi5cYnJpZGdlOyQoUHJvamVjdERpciku
LlxicmlkZ2VcYzskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYzskKFByb2plY3REaXIpLi5cY3Nz
OyQoUHJvamVjdERpcikuLlxlZGl0aW5nOyQoUHJvamVjdERpcikuLlxmaWxlYXBpOyQoUHJvamVj
dERpcikuLlxyZW5kZXJpbmc7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWw7JChQcm9q
ZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZTskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN2Zzsk
KFByb2plY3REaXIpLi5cYmluZGluZ3M7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWM7
JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzOyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xqc1xz
cGVjaWFsaXphdGlvbjskKFByb2plY3REaXIpLi5cZG9tOyQoUHJvamVjdERpcikuLlxkb21cZGVm
YXVsdDskKFByb2plY3REaXIpLi5caGlzdG9yeTskKFByb2plY3REaXIpLi5caHRtbDskKFByb2pl
Y3REaXIpLi5caHRtbFxjYW52YXM7JChQcm9qZWN0RGlyKS4uXGh0bWxcZm9ybXM7JChQcm9qZWN0
RGlyKS4uXGh0bWxccGFyc2VyOyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRvdzskKFByb2plY3RE
aXIpLi5caHRtbFx0cmFjazskKFByb2plY3REaXIpLi5caW5zcGVjdG9yOyQoUHJvamVjdERpciku
Llxsb2FkZXI7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBjYWNoZTskKFByb2plY3REaXIpLi5c
bG9hZGVyXGFyY2hpdmU7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmOyQoUHJvamVj
dERpcikuLlxsb2FkZXJcY2FjaGU7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29uOyQoUHJvamVj
dERpcikuLlxtYXRobWw7JChQcm9qZWN0RGlyKS4uXHBhZ2U7JChQcm9qZWN0RGlyKS4uXHBhZ2Vc
YW5pbWF0aW9uOyQoUHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZzskKFByb2plY3REaXIpLi5c
cGFnZVx3aW47JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtOyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxhbmltYXRpb247JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2s7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXHNxbDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luOyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxuZXR3b3JrOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbjsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2Y7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYTskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcY3B1XGFybVxmaWx0ZXJzOyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljc1xmaWx0ZXJzOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0
ZXJzXGFybTskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGU7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXM7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXHRleHQ7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRcdHJhbnNjb2RlcjskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luOyQoUHJvamVjdERpcikuLlx4bWw7JChQ
cm9qZWN0RGlyKS4uXHhtbFxwYXJzZXI7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iajMyXFdl
YkNvcmVcRGVyaXZlZFNvdXJjZXM7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnM7JChQcm9qZWN0RGly
KS4uXHBsdWdpbnNcd2luOyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uOyQoUHJvamVjdERp
cikuLlxzdmdcZ3JhcGhpY3M7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzOyQoUHJvamVj
dERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVyczskKFByb2plY3REaXIpLi5cc3ZnOyQoUHJvamVj
dERpcikuLlx0ZXN0aW5nOyQoUHJvamVjdERpcikuLlx3bWw7JChQcm9qZWN0RGlyKS4uXHN0b3Jh
Z2U7JChQcm9qZWN0RGlyKS4uXHN0eWxlOyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzOyQoUHJv
amVjdERpcikuLlx3b3JrZXJzOyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlOyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGU7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmU7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1
ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZTskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRl
cnM7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGdwdTskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZWdsOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xz
dXJmYWNlczskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncc3VyZmFjZXNcZWdsOyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVuZ2w7JChXZWJLaXRfTGlicmFyaWVz
KVxpbmNsdWRlOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVkZVxwcml2YXRlOyQoV2ViS2l0X0xp
YnJhcmllcylcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlOyQoV2ViS2l0X0xpYnJhcmll
cylcaW5jbHVkZVxzcWxpdGU7JChXZWJLaXRfTGlicmFyaWVzKVxpbmNsdWRlXEphdmFTY3JpcHRD
b3JlOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVkZVx6bGliOyUoQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+DQogICAgICAgPFByZXBy
b2Nlc3NvckRlZmluaXRpb25zPkRJU0FCTEVfM0RfUkVOREVSSU5HO1dFQkNPUkVfQ09OVEVYVF9N
RU5VUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+
DQogICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPlVzZTwvUHJlY29tcGlsZWRIZWFkZXI+DQogICAg
ICAgPFByZWNvbXBpbGVkSGVhZGVyRmlsZT5XZWJDb3JlUHJlZml4Lmg8L1ByZWNvbXBpbGVkSGVh
ZGVyRmlsZT4NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovY29weUZvcndh
cmRpbmdIZWFkZXJzLmNtZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovY29weUZvcndhcmRpbmdIZWFkZXJzLmNtZAkocmV2aXNpb24gMTUzNzgyKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2NvcHlGb3J3YXJkaW5nSGVhZGVycy5jbWQJKHdv
cmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAgeGNvcHkgL3kgL2QgIiVQcm9qZWN0RGlyJS4u
XHN2Z1xncmFwaGljcwogeGNvcHkgL3kgL2QgIiVQcm9qZWN0RGlyJS4uXHN2Z1xwcm9wZXJ0aWVz
XCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKIHhjb3B5IC95
IC9kICIlUHJvamVjdERpciUuLlxzdmdcKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5j
bHVkZVxXZWJDb3JlIgogeGNvcHkgL3kgL2QgIiVQcm9qZWN0RGlyJS4uXHN0b3JhZ2VcKi5oIiAi
JUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlIgoreGNvcHkgL3kgL2QgIiVQ
cm9qZWN0RGlyJS4uXHN0eWxlXCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVc
V2ViQ29yZSIKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlx3b3JrZXJzXCouaCIgIiVDT05G
SUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKIHhjb3B5IC95IC9kICIlUHJvamVj
dERpciUuLlxGb3J3YXJkaW5nSGVhZGVyc1xiaW5kaW5nc1wqLmgiICIlQ09ORklHVVJBVElPTkJV
SUxERElSJVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnNcYmluZGluZ3MiCiB4Y29w
eSAveSAvZCAiJVByb2plY3REaXIlLi5cRm9yd2FyZGluZ0hlYWRlcnNccGFyc2VyXCouaCIgIiVD
T05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVyc1xw
YXJzZXIiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTM3ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMDQyLDYgKzEz
MDQyLDcgQEAKIAkJCQk1RENGODM2OTBENTkxNTc4MDA5NTNCQzYgLyogcGx1Z2lucyAqLywKIAkJ
CQlGNTIzRDJGMzAyREU0NDNCMDE4NjM1Q0EgLyogcmVuZGVyaW5nICovLAogCQkJCTFBRTgyRUM5
MENBQUUxNzcwMDIyMzdBRSAvKiBzdG9yYWdlICovLAorCQkJCUU0NzYzRDRBMTdCMjcwNDkwMEQz
NTIwNiAvKiBzdHlsZSAqLywKIAkJCQlCMjIyNzdDQTBEMDBCRjFFMDA3MUI3ODIgLyogc3ZnICov
LAogCQkJCTQxN0RBNENEMTM3MzQyMDQwMDdDNTdGQiAvKiB0ZXN0aW5nICovLAogCQkJCTJFNDM0
NjMxMEY1NDZBNjgwMEIwRjFCQSAvKiB3b3JrZXJzICovLApAQCAtMTk2MDUsNiArMTk2MDYsMTUg
QEAKIAkJCXBhdGggPSBhbmltYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQlFNDc2M0Q0QTE3QjI3MDQ5MDBEMzUyMDYgLyogc3R5bGUgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUU0REVBQTE1MTdBOTNEQzMwMDBFMDQzMCAv
KiBTdHlsZVJlc29sdmVUcmVlLmNwcCAqLywKKwkJCQlFNERFQUExNjE3QTkzREMzMDAwRTA0MzAg
LyogU3R5bGVSZXNvbHZlVHJlZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBzdHlsZTsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUVENTAxREM5MEIyNDlGMzkwMEFFMThEOSAv
KiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTk4
NDQsOCArMTk4NTQsNiBAQAogCQkJCUUxQjI1MTA1MTUyQTBCQUYwMDY5Qjc3OSAvKiBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kLmggKi8sCiAJCQkJRTEzOTg2NjExNTQ3ODQ3NDAwMUUzRjY1IC8qIFN0
eWxlUmVzb2x2ZXIuY3BwICovLAogCQkJCUUxMzk4NjYyMTU0Nzg0NzQwMDFFM0Y2NSAvKiBTdHls
ZVJlc29sdmVyLmggKi8sCi0JCQkJRTRERUFBMTUxN0E5M0RDMzAwMEUwNDMwIC8qIFN0eWxlUmVz
b2x2ZVRyZWUuY3BwICovLAotCQkJCUU0REVBQTE2MTdBOTNEQzMwMDBFMDQzMCAvKiBTdHlsZVJl
c29sdmVUcmVlLmggKi8sCiAJCQkJRTRCQkVENEExNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVs
ZS5jcHAgKi8sCiAJCQkJRTRCQkVENEIxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5oICov
LAogCQkJCUU0OTQ2RUFDMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJbXBvcnQuY3BwICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmNwcAkocmV2aXNpb24g
MTUzNzgzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDI0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29p
dmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDIwMDEgUGV0ZXIgS2Vs
bHkgKHBta0Bwb3N0LmNvbSkKLSAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0aCAoY2F0Zmlz
aC5tYW5AZ21haWwuY29tKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqICAgICAgICAgICAoQykgMjAwNyBFcmljIFNlaWRlbCAoZXJpY0B3ZWJraXQub3Jn
KQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3R5bGVSZXNvbHZlVHJlZS5oIgotCi0j
aW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgotI2luY2x1
ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKLSNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCi0jaW5jbHVkZSAiVGV4dC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLW5hbWVzcGFjZSBTdHlsZSB7Ci0KLUNoYW5nZSBk
ZXRlcm1pbmVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIHMxLCBjb25zdCBSZW5kZXJTdHlsZSog
czIsIFNldHRpbmdzKiBzZXR0aW5ncykKLXsKLSAgICBpZiAoIXMxIHx8ICFzMikKLSAgICAgICAg
cmV0dXJuIERldGFjaDsKLSAgICBpZiAoczEtPmRpc3BsYXkoKSAhPSBzMi0+ZGlzcGxheSgpKQot
ICAgICAgICByZXR1cm4gRGV0YWNoOwotICAgIGlmIChzMS0+aGFzUHNldWRvU3R5bGUoRklSU1Rf
TEVUVEVSKSAhPSBzMi0+aGFzUHNldWRvU3R5bGUoRklSU1RfTEVUVEVSKSkKLSAgICAgICAgcmV0
dXJuIERldGFjaDsKLSAgICAvLyBXZSBqdXN0IGRldGFjaCBpZiBhIHJlbmRlcmVyIGFjcXVpcmVz
IG9yIGxvc2VzIGEgY29sdW1uLXNwYW4sIHNpbmNlIHNwYW5uaW5nIGVsZW1lbnRzCi0gICAgLy8g
dHlwaWNhbGx5IHdvbid0IGNvbnRhaW4gbXVjaCBjb250ZW50LgotICAgIGlmIChzMS0+Y29sdW1u
U3BhbigpICE9IHMyLT5jb2x1bW5TcGFuKCkpCi0gICAgICAgIHJldHVybiBEZXRhY2g7Ci0gICAg
aWYgKHNldHRpbmdzLT5yZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKCkpIHsKLSAgICAgICAgYm9v
bCBzcGVjaWZpZXNDb2x1bW5zMSA9ICFzMS0+aGFzQXV0b0NvbHVtbkNvdW50KCkgfHwgIXMxLT5o
YXNBdXRvQ29sdW1uV2lkdGgoKTsKLSAgICAgICAgYm9vbCBzcGVjaWZpZXNDb2x1bW5zMiA9ICFz
Mi0+aGFzQXV0b0NvbHVtbkNvdW50KCkgfHwgIXMyLT5oYXNBdXRvQ29sdW1uV2lkdGgoKTsKLSAg
ICAgICAgaWYgKHNwZWNpZmllc0NvbHVtbnMxICE9IHNwZWNpZmllc0NvbHVtbnMyKQotICAgICAg
ICAgICAgcmV0dXJuIERldGFjaDsKLSAgICB9Ci0gICAgaWYgKCFzMS0+Y29udGVudERhdGFFcXVp
dmFsZW50KHMyKSkKLSAgICAgICAgcmV0dXJuIERldGFjaDsKLSAgICAvLyBXaGVuIHRleHQtY29t
YmluZSBwcm9wZXJ0eSBoYXMgYmVlbiBjaGFuZ2VkLCB3ZSBuZWVkIHRvIHByZXBhcmUgYSBzZXBh
cmF0ZSByZW5kZXJlciBvYmplY3QuCi0gICAgLy8gV2hlbiB0ZXh0LWNvbWJpbmUgaXMgb24sIHdl
IHVzZSBSZW5kZXJDb21iaW5lVGV4dCwgb3RoZXJ3aXNlIFJlbmRlclRleHQuCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDY5Ci0gICAgaWYgKHMxLT5o
YXNUZXh0Q29tYmluZSgpICE9IHMyLT5oYXNUZXh0Q29tYmluZSgpKQotICAgICAgICByZXR1cm4g
RGV0YWNoOwotICAgIC8vIFdlIG5lZWQgdG8gcmVhdHRhY2ggdGhlIG5vZGUsIHNvIHRoYXQgaXQg
aXMgbW92ZWQgdG8gdGhlIGNvcnJlY3QgUmVuZGVyRmxvd1RocmVhZC4KLSAgICBpZiAoczEtPmZs
b3dUaHJlYWQoKSAhPSBzMi0+Zmxvd1RocmVhZCgpKQotICAgICAgICByZXR1cm4gRGV0YWNoOwot
ICAgIC8vIFdoZW4gdGhlIHJlZ2lvbiB0aHJlYWQgaGFzIGNoYW5nZWQsIHdlIG5lZWQgdG8gcHJl
cGFyZSBhIHNlcGFyYXRlIHJlbmRlciByZWdpb24gb2JqZWN0LgotICAgIGlmIChzMS0+cmVnaW9u
VGhyZWFkKCkgIT0gczItPnJlZ2lvblRocmVhZCgpKQotICAgICAgICByZXR1cm4gRGV0YWNoOwot
Ci0gICAgaWYgKCpzMSAhPSAqczIpIHsKLSAgICAgICAgaWYgKHMxLT5pbmhlcml0ZWROb3RFcXVh
bChzMikpCi0gICAgICAgICAgICByZXR1cm4gSW5oZXJpdDsKLSAgICAgICAgaWYgKHMxLT5oYXNF
eHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpIHx8IHMyLT5oYXNFeHBsaWNpdGx5SW5oZXJp
dGVkUHJvcGVydGllcygpKQotICAgICAgICAgICAgcmV0dXJuIEluaGVyaXQ7Ci0KLSAgICAgICAg
cmV0dXJuIE5vSW5oZXJpdDsKLSAgICB9Ci0gICAgLy8gSWYgdGhlIHBzZXVkb1N0eWxlcyBoYXZl
IGNoYW5nZWQsIHdlIHdhbnQgYW55IFN0eWxlQ2hhbmdlIHRoYXQgaXMgbm90IE5vQ2hhbmdlCi0g
ICAgLy8gYmVjYXVzZSBzZXRTdHlsZSB3aWxsIGRvIHRoZSByaWdodCB0aGluZyB3aXRoIGFueXRo
aW5nIGVsc2UuCi0gICAgaWYgKHMxLT5oYXNBbnlQdWJsaWNQc2V1ZG9TdHlsZXMoKSkgewotICAg
ICAgICBmb3IgKFBzZXVkb0lkIHBzZXVkb0lkID0gRklSU1RfUFVCTElDX1BTRVVET0lEOyBwc2V1
ZG9JZCA8IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEOyBwc2V1ZG9JZCA9IHN0YXRpY19jYXN0PFBz
ZXVkb0lkPihwc2V1ZG9JZCArIDEpKSB7Ci0gICAgICAgICAgICBpZiAoczEtPmhhc1BzZXVkb1N0
eWxlKHBzZXVkb0lkKSkgewotICAgICAgICAgICAgICAgIFJlbmRlclN0eWxlKiBwczIgPSBzMi0+
Z2V0Q2FjaGVkUHNldWRvU3R5bGUocHNldWRvSWQpOwotICAgICAgICAgICAgICAgIGlmICghcHMy
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9Jbmhlcml0OwotICAgICAgICAgICAgICAg
IFJlbmRlclN0eWxlKiBwczEgPSBzMS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUocHNldWRvSWQpOwot
ICAgICAgICAgICAgICAgIGlmICghcHMxIHx8ICpwczEgIT0gKnBzMikKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vSW5oZXJpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0K
LQotICAgIHJldHVybiBOb0NoYW5nZTsKLX0KLQotc3RhdGljIGJvb2wgcHNldWRvU3R5bGVDYWNo
ZUlzSW52YWxpZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJTdHlsZSogbmV3U3R5bGUp
Ci17Ci0gICAgY29uc3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSA9IHJlbmRlcmVyLT5zdHls
ZSgpOwotCi0gICAgY29uc3QgUHNldWRvU3R5bGVDYWNoZSogcHNldWRvU3R5bGVDYWNoZSA9IGN1
cnJlbnRTdHlsZS0+Y2FjaGVkUHNldWRvU3R5bGVzKCk7Ci0gICAgaWYgKCFwc2V1ZG9TdHlsZUNh
Y2hlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBzaXplX3QgY2FjaGVTaXplID0gcHNl
dWRvU3R5bGVDYWNoZS0+c2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2FjaGVT
aXplOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdQc2V1ZG9TdHlsZTsK
LSAgICAgICAgUHNldWRvSWQgcHNldWRvSWQgPSBwc2V1ZG9TdHlsZUNhY2hlLT5hdChpKS0+c3R5
bGVUeXBlKCk7Ci0gICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MSU5FIHx8IHBzZXVkb0lk
ID09IEZJUlNUX0xJTkVfSU5IRVJJVEVEKQotICAgICAgICAgICAgbmV3UHNldWRvU3R5bGUgPSBy
ZW5kZXJlci0+dW5jYWNoZWRGaXJzdExpbmVTdHlsZShuZXdTdHlsZSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG5ld1BzZXVkb1N0eWxlID0gcmVuZGVyZXItPmdldFVuY2FjaGVkUHNldWRv
U3R5bGUoUHNldWRvU3R5bGVSZXF1ZXN0KHBzZXVkb0lkKSwgbmV3U3R5bGUsIG5ld1N0eWxlKTsK
LSAgICAgICAgaWYgKCFuZXdQc2V1ZG9TdHlsZSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICBpZiAoKm5ld1BzZXVkb1N0eWxlICE9ICpwc2V1ZG9TdHlsZUNhY2hlLT5hdChpKSkg
ewotICAgICAgICAgICAgaWYgKHBzZXVkb0lkIDwgRklSU1RfSU5URVJOQUxfUFNFVURPSUQpCi0g
ICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNldEhhc1BzZXVkb1N0eWxlKHBzZXVkb0lkKTsKLSAg
ICAgICAgICAgIG5ld1N0eWxlLT5hZGRDYWNoZWRQc2V1ZG9TdHlsZShuZXdQc2V1ZG9TdHlsZSk7
Ci0gICAgICAgICAgICBpZiAocHNldWRvSWQgPT0gRklSU1RfTElORSB8fCBwc2V1ZG9JZCA9PSBG
SVJTVF9MSU5FX0lOSEVSSVRFRCkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gYW4gYWN0dWFsIGRpZmYgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByZXBhaW50IHZzLiBs
YXlvdXQKLSAgICAgICAgICAgICAgICAvLyBpcyBuZWVkZWQsIGJ1dCBmb3Igbm93IGp1c3QgYXNz
dW1lIGEgbGF5b3V0IHdpbGwgYmUgcmVxdWlyZWQuIFRoZSBkaWZmIGNvZGUKLSAgICAgICAgICAg
ICAgICAvLyBpbiBSZW5kZXJPYmplY3Q6OnNldFN0eWxlIHdvdWxkIG5lZWQgdG8gYmUgZmFjdG9y
ZWQgb3V0IHNvIHRoYXQgaXQgY291bGQgYmUgcmV1c2VkLgotICAgICAgICAgICAgICAgIHJlbmRl
cmVyLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotc3RhdGljIENoYW5nZSByZXNvbHZlTG9jYWwoRWxlbWVudCogY3VycmVudCwg
Q2hhbmdlIGluaGVyaXRlZENoYW5nZSkKLXsKLSAgICBDaGFuZ2UgbG9jYWxDaGFuZ2UgPSBEZXRh
Y2g7Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZTsKLSAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IGN1cnJlbnRTdHlsZSA9IGN1cnJlbnQtPnJlbmRlclN0eWxlKCk7Ci0KLSAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBjdXJyZW50LT5kb2N1bWVudCgpOwotICAgIGlmIChjdXJyZW50U3R5
bGUpIHsKLSAgICAgICAgbmV3U3R5bGUgPSBjdXJyZW50LT5zdHlsZUZvclJlbmRlcmVyKCk7Ci0g
ICAgICAgIGxvY2FsQ2hhbmdlID0gZGV0ZXJtaW5lQ2hhbmdlKGN1cnJlbnRTdHlsZS5nZXQoKSwg
bmV3U3R5bGUuZ2V0KCksIGRvY3VtZW50LT5zZXR0aW5ncygpKTsKLSAgICB9Ci0gICAgaWYgKGxv
Y2FsQ2hhbmdlID09IERldGFjaCkgewotICAgICAgICBOb2RlOjpBdHRhY2hDb250ZXh0IHJlYXR0
YWNoQ29udGV4dDsKLSAgICAgICAgcmVhdHRhY2hDb250ZXh0LnJlc29sdmVkU3R5bGUgPSBuZXdT
dHlsZS5nZXQoKTsKLSAgICAgICAgY3VycmVudC0+cmVhdHRhY2gocmVhdHRhY2hDb250ZXh0KTsK
LSAgICAgICAgcmV0dXJuIERldGFjaDsKLSAgICB9Ci0KLSAgICBpZiAoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IGN1cnJlbnQtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgaWYgKGxvY2FsQ2hhbmdl
ICE9IE5vQ2hhbmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQocmVuZGVyZXIsIG5ld1N0
eWxlLmdldCgpKSB8fCAoaW5oZXJpdGVkQ2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyLT5yZXF1
aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSkgfHwgY3VycmVudC0+c3R5bGVDaGFu
Z2VUeXBlKCkgPT0gU3ludGhldGljU3R5bGVDaGFuZ2UpCi0gICAgICAgICAgICByZW5kZXJlci0+
c2V0QW5pbWF0YWJsZVN0eWxlKG5ld1N0eWxlLmdldCgpKTsKLSAgICAgICAgZWxzZSBpZiAoY3Vy
cmVudC0+bmVlZHNTdHlsZVJlY2FsYygpKSB7Ci0gICAgICAgICAgICAvLyBBbHRob3VnaCBubyBj
aGFuZ2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBz
dHlsZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0Ci0gICAgICAgICAgICAvLyBmb29sZWQgaW50byBi
ZWxpZXZpbmcgdGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KLSAgICAgICAgICAgIHJlbmRlcmVyLT5z
ZXRTdHlsZUludGVybmFsKG5ld1N0eWxlLmdldCgpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IC8vIElmICJyZW0iIHVuaXRzIGFyZSB1c2VkIGFueXdoZXJlIGluIHRoZSBkb2N1bWVudCwgYW5k
IGlmIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXplIGNoYW5nZXMsIHRoZW4gZ28gYWhl
YWQgYW5kIGZvcmNlIGZvbnQgdXBkYXRpbmcKLSAgICAvLyBhbGwgdGhlIHdheSBkb3duIHRoZSB0
cmVlLiBUaGlzIGlzIHNpbXBsZXIgdGhhbiBoYXZpbmcgdG8gbWFpbnRhaW4gYSBjYWNoZSBvZiBv
YmplY3RzIChhbmQgc3VjaCBmb250IHNpemUgY2hhbmdlcyBzaG91bGQgYmUgcmFyZSBhbnl3YXkp
LgotICAgIGlmIChkb2N1bWVudC0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS0+dXNlc1JlbVVuaXRz
KCkgJiYgZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpID09IGN1cnJlbnQgJiYgbG9jYWxDaGFu
Z2UgIT0gTm9DaGFuZ2UgJiYgY3VycmVudFN0eWxlICYmIG5ld1N0eWxlICYmIGN1cnJlbnRTdHls
ZS0+Zm9udFNpemUoKSAhPSBuZXdTdHlsZS0+Zm9udFNpemUoKSkgewotICAgICAgICAvLyBDYWNo
ZWQgUmVuZGVyU3R5bGVzIG1heSBkZXBlbmQgb24gdGhlIHJlIHVuaXRzLgotICAgICAgICBpZiAo
U3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IGRvY3VtZW50LT5zdHlsZVJlc29sdmVySWZF
eGlzdHMoKSkKLSAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVkUHJv
cGVydGllc0NhY2hlKCk7Ci0gICAgICAgIHJldHVybiBGb3JjZTsKLSAgICB9Ci0gICAgaWYgKGlu
aGVyaXRlZENoYW5nZSA9PSBGb3JjZSkKLSAgICAgICAgcmV0dXJuIEZvcmNlOwotICAgIGlmIChj
dXJyZW50LT5zdHlsZUNoYW5nZVR5cGUoKSA+PSBGdWxsU3R5bGVDaGFuZ2UpCi0gICAgICAgIHJl
dHVybiBGb3JjZTsKLQotICAgIHJldHVybiBsb2NhbENoYW5nZTsKLX0KLQotdm9pZCByZXNvbHZl
VHJlZShFbGVtZW50KiBjdXJyZW50LCBDaGFuZ2UgY2hhbmdlKQotewotICAgIEFTU0VSVChjaGFu
Z2UgIT0gRGV0YWNoKTsKLQotICAgIGlmIChjdXJyZW50LT5oYXNDdXN0b21TdHlsZUNhbGxiYWNr
cygpKSB7Ci0gICAgICAgIGlmICghY3VycmVudC0+d2lsbFJlY2FsY1N0eWxlKGNoYW5nZSkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYm9vbCBoYXNQYXJlbnRTdHlsZSA9IGN1
cnJlbnQtPnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpICYmIGN1cnJlbnQtPnBhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpLT5yZW5kZXJTdHlsZSgpOwotICAgIGJvb2wgaGFz
RGlyZWN0QWRqYWNlbnRSdWxlcyA9IGN1cnJlbnQtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFk
amFjZW50UnVsZXMoKTsKLSAgICBib29sIGhhc0luZGlyZWN0QWRqYWNlbnRSdWxlcyA9IGN1cnJl
bnQtPmNoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMoKTsKLQotICAgIGlm
IChjaGFuZ2UgPiBOb0NoYW5nZSB8fCBjdXJyZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpCi0gICAg
ICAgIGN1cnJlbnQtPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwotCi0gICAgaWYgKGhhc1BhcmVudFN0
eWxlICYmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBjdXJyZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkp
KQotICAgICAgICBjaGFuZ2UgPSByZXNvbHZlTG9jYWwoY3VycmVudCwgY2hhbmdlKTsKLQotICAg
IGlmIChjaGFuZ2UgIT0gRGV0YWNoKSB7Ci0gICAgICAgIFN0eWxlUmVzb2x2ZXJQYXJlbnRQdXNo
ZXIgcGFyZW50UHVzaGVyKGN1cnJlbnQpOwotCi0gICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBz
aGFkb3cgPSBjdXJyZW50LT5zaGFkb3coKSkgewotICAgICAgICAgICAgaWYgKGNoYW5nZSA+PSBJ
bmhlcml0IHx8IHNoYWRvdy0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hhZG93LT5uZWVk
c1N0eWxlUmVjYWxjKCkpIHsKLSAgICAgICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwot
ICAgICAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIGN1cnJlbnQtPnVwZGF0ZVBzZXVkb0VsZW1lbnQoQkVG
T1JFLCBjaGFuZ2UpOwotCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGlzIGdvb2QgZW5v
dWdoIGZvciA6aG92ZXIgKyBmb28sIGJ1dCBpdCBpcyBub3QgZ29vZCBlbm91Z2ggZm9yIDpob3Zl
ciArIGZvbyArIGJhci4KLSAgICAgICAgLy8gRm9yIG5vdyB3ZSB3aWxsIGp1c3Qgd29ycnkgYWJv
dXQgdGhlIGNvbW1vbiBjYXNlLCBzaW5jZSBpdCdzIGEgbG90IHRyaWNraWVyIHRvIGdldCB0aGUg
c2Vjb25kIGNhc2UgcmlnaHQKLSAgICAgICAgLy8gd2l0aG91dCBkb2luZyB3YXkgdG9vIG11Y2gg
cmUtcmVzb2x1dGlvbi4KLSAgICAgICAgYm9vbCBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxp
bmcgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGluZyA9
IGZhbHNlOwotICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gY3VycmVudC0+Zmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgaWYg
KGNoaWxkLT5pc1RleHROb2RlKCkpIHsKLSAgICAgICAgICAgICAgICB0b1RleHQoY2hpbGQpLT5y
ZWNhbGNUZXh0U3R5bGUoY2hhbmdlKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGlmICghY2hpbGQtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEVsZW1lbnQqIGNoaWxkRWxlbWVudCA9
IHRvRWxlbWVudChjaGlsZCk7Ci0gICAgICAgICAgICBib29sIGNoaWxkUnVsZXNDaGFuZ2VkID0g
Y2hpbGRFbGVtZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkgJiYgY2hpbGRFbGVtZW50LT5zdHlsZUNo
YW5nZVR5cGUoKSA9PSBGdWxsU3R5bGVDaGFuZ2U7Ci0gICAgICAgICAgICBpZiAoKGZvcmNlQ2hl
Y2tPZk5leHRFbGVtZW50U2libGluZyB8fCBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGluZykp
Ci0gICAgICAgICAgICAgICAgY2hpbGRFbGVtZW50LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0g
ICAgICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgY2hpbGRFbGVtZW50LT5jaGlsZE5l
ZWRzU3R5bGVSZWNhbGMoKSB8fCBjaGlsZEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkgewot
ICAgICAgICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7Ci0gICAgICAgICAgICAgICAgcmVz
b2x2ZVRyZWUoY2hpbGRFbGVtZW50LCBjaGFuZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZm9yY2VDaGVja09mTmV4dEVsZW1lbnRTaWJsaW5nID0gY2hpbGRSdWxlc0NoYW5nZWQgJiYg
aGFzRGlyZWN0QWRqYWNlbnRSdWxlczsKLSAgICAgICAgICAgIGZvcmNlQ2hlY2tPZkFueUVsZW1l
bnRTaWJsaW5nID0gZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgfHwgKGNoaWxkUnVsZXND
aGFuZ2VkICYmIGhhc0luZGlyZWN0QWRqYWNlbnRSdWxlcyk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBjdXJyZW50LT51cGRhdGVQc2V1ZG9FbGVtZW50KEFGVEVSLCBjaGFuZ2UpOwotICAgIH0KLQot
ICAgIGN1cnJlbnQtPmNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGN1cnJlbnQtPmNsZWFy
Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgCi0gICAgaWYgKGN1cnJlbnQtPmhhc0N1c3Rv
bVN0eWxlQ2FsbGJhY2tzKCkpCi0gICAgICAgIGN1cnJlbnQtPmRpZFJlY2FsY1N0eWxlKGNoYW5n
ZSk7Ci19Ci0KLX0KLQotfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZVRy
ZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlVHJlZS5o
CShyZXZpc2lvbiAxNTM3ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlVHJl
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFN0eWxlUmVzb2x2ZVRyZWVfaAotI2Rl
ZmluZSBTdHlsZVJlc29sdmVUcmVlX2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBF
bGVtZW50OwotY2xhc3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBTZXR0aW5nczsKLQotbmFtZXNwYWNl
IFN0eWxlIHsKLQotZW51bSBDaGFuZ2UgeyBOb0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBE
ZXRhY2gsIEZvcmNlIH07Ci0KLXZvaWQgcmVzb2x2ZVRyZWUoRWxlbWVudCosIENoYW5nZSk7Ci0K
LUNoYW5nZSBkZXRlcm1pbmVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSZW5kZXJT
dHlsZSosIFNldHRpbmdzKik7Ci0KLX0KLQotfQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCShyZXZpc2lvbiAxNTM3ODMpCShmcm9tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmNwcDoxNTM3ODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDI0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20p
CisgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCisg
KiAgICAgICAgICAgKEMpIDIwMDcgRGF2aWQgU21pdGggKGNhdGZpc2gubWFuQGdtYWlsLmNvbSkK
KyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAg
ICAgKEMpIDIwMDcgRXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZVRyZWUuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKKyNpbmNsdWRlICJOb2RlUmVuZGVyU3R5
bGUuaCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5j
bHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCituYW1lc3BhY2UgU3R5bGUgeworCitDaGFuZ2UgZGV0ZXJtaW5lQ2hhbmdlKGNv
bnN0IFJlbmRlclN0eWxlKiBzMSwgY29uc3QgUmVuZGVyU3R5bGUqIHMyLCBTZXR0aW5ncyogc2V0
dGluZ3MpCit7CisgICAgaWYgKCFzMSB8fCAhczIpCisgICAgICAgIHJldHVybiBEZXRhY2g7Cisg
ICAgaWYgKHMxLT5kaXNwbGF5KCkgIT0gczItPmRpc3BsYXkoKSkKKyAgICAgICAgcmV0dXJuIERl
dGFjaDsKKyAgICBpZiAoczEtPmhhc1BzZXVkb1N0eWxlKEZJUlNUX0xFVFRFUikgIT0gczItPmhh
c1BzZXVkb1N0eWxlKEZJUlNUX0xFVFRFUikpCisgICAgICAgIHJldHVybiBEZXRhY2g7CisgICAg
Ly8gV2UganVzdCBkZXRhY2ggaWYgYSByZW5kZXJlciBhY3F1aXJlcyBvciBsb3NlcyBhIGNvbHVt
bi1zcGFuLCBzaW5jZSBzcGFubmluZyBlbGVtZW50cworICAgIC8vIHR5cGljYWxseSB3b24ndCBj
b250YWluIG11Y2ggY29udGVudC4KKyAgICBpZiAoczEtPmNvbHVtblNwYW4oKSAhPSBzMi0+Y29s
dW1uU3BhbigpKQorICAgICAgICByZXR1cm4gRGV0YWNoOworICAgIGlmIChzZXR0aW5ncy0+cmVn
aW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKSB7CisgICAgICAgIGJvb2wgc3BlY2lmaWVzQ29sdW1u
czEgPSAhczEtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFzMS0+aGFzQXV0b0NvbHVtbldpZHRo
KCk7CisgICAgICAgIGJvb2wgc3BlY2lmaWVzQ29sdW1uczIgPSAhczItPmhhc0F1dG9Db2x1bW5D
b3VudCgpIHx8ICFzMi0+aGFzQXV0b0NvbHVtbldpZHRoKCk7CisgICAgICAgIGlmIChzcGVjaWZp
ZXNDb2x1bW5zMSAhPSBzcGVjaWZpZXNDb2x1bW5zMikKKyAgICAgICAgICAgIHJldHVybiBEZXRh
Y2g7CisgICAgfQorICAgIGlmICghczEtPmNvbnRlbnREYXRhRXF1aXZhbGVudChzMikpCisgICAg
ICAgIHJldHVybiBEZXRhY2g7CisgICAgLy8gV2hlbiB0ZXh0LWNvbWJpbmUgcHJvcGVydHkgaGFz
IGJlZW4gY2hhbmdlZCwgd2UgbmVlZCB0byBwcmVwYXJlIGEgc2VwYXJhdGUgcmVuZGVyZXIgb2Jq
ZWN0LgorICAgIC8vIFdoZW4gdGV4dC1jb21iaW5lIGlzIG9uLCB3ZSB1c2UgUmVuZGVyQ29tYmlu
ZVRleHQsIG90aGVyd2lzZSBSZW5kZXJUZXh0LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NTA2OQorICAgIGlmIChzMS0+aGFzVGV4dENvbWJpbmUoKSAh
PSBzMi0+aGFzVGV4dENvbWJpbmUoKSkKKyAgICAgICAgcmV0dXJuIERldGFjaDsKKyAgICAvLyBX
ZSBuZWVkIHRvIHJlYXR0YWNoIHRoZSBub2RlLCBzbyB0aGF0IGl0IGlzIG1vdmVkIHRvIHRoZSBj
b3JyZWN0IFJlbmRlckZsb3dUaHJlYWQuCisgICAgaWYgKHMxLT5mbG93VGhyZWFkKCkgIT0gczIt
PmZsb3dUaHJlYWQoKSkKKyAgICAgICAgcmV0dXJuIERldGFjaDsKKyAgICAvLyBXaGVuIHRoZSBy
ZWdpb24gdGhyZWFkIGhhcyBjaGFuZ2VkLCB3ZSBuZWVkIHRvIHByZXBhcmUgYSBzZXBhcmF0ZSBy
ZW5kZXIgcmVnaW9uIG9iamVjdC4KKyAgICBpZiAoczEtPnJlZ2lvblRocmVhZCgpICE9IHMyLT5y
ZWdpb25UaHJlYWQoKSkKKyAgICAgICAgcmV0dXJuIERldGFjaDsKKworICAgIGlmICgqczEgIT0g
KnMyKSB7CisgICAgICAgIGlmIChzMS0+aW5oZXJpdGVkTm90RXF1YWwoczIpKQorICAgICAgICAg
ICAgcmV0dXJuIEluaGVyaXQ7CisgICAgICAgIGlmIChzMS0+aGFzRXhwbGljaXRseUluaGVyaXRl
ZFByb3BlcnRpZXMoKSB8fCBzMi0+aGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSkK
KyAgICAgICAgICAgIHJldHVybiBJbmhlcml0OworCisgICAgICAgIHJldHVybiBOb0luaGVyaXQ7
CisgICAgfQorICAgIC8vIElmIHRoZSBwc2V1ZG9TdHlsZXMgaGF2ZSBjaGFuZ2VkLCB3ZSB3YW50
IGFueSBTdHlsZUNoYW5nZSB0aGF0IGlzIG5vdCBOb0NoYW5nZQorICAgIC8vIGJlY2F1c2Ugc2V0
U3R5bGUgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgd2l0aCBhbnl0aGluZyBlbHNlLgorICAgIGlm
IChzMS0+aGFzQW55UHVibGljUHNldWRvU3R5bGVzKCkpIHsKKyAgICAgICAgZm9yIChQc2V1ZG9J
ZCBwc2V1ZG9JZCA9IEZJUlNUX1BVQkxJQ19QU0VVRE9JRDsgcHNldWRvSWQgPCBGSVJTVF9JTlRF
Uk5BTF9QU0VVRE9JRDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4ocHNldWRvSWQg
KyAxKSkgeworICAgICAgICAgICAgaWYgKHMxLT5oYXNQc2V1ZG9TdHlsZShwc2V1ZG9JZCkpIHsK
KyAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogcHMyID0gczItPmdldENhY2hlZFBzZXVkb1N0
eWxlKHBzZXVkb0lkKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBzMikKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vSW5oZXJpdDsKKyAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogcHMx
ID0gczEtPmdldENhY2hlZFBzZXVkb1N0eWxlKHBzZXVkb0lkKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIXBzMSB8fCAqcHMxICE9ICpwczIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb0lu
aGVyaXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gTm9D
aGFuZ2U7Cit9CisKK3N0YXRpYyBib29sIHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQoreworICAgIGNvbnN0IFJl
bmRlclN0eWxlKiBjdXJyZW50U3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKKworICAgIGNvbnN0
IFBzZXVkb1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50U3R5bGUtPmNhY2hl
ZFBzZXVkb1N0eWxlcygpOworICAgIGlmICghcHNldWRvU3R5bGVDYWNoZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgc2l6ZV90IGNhY2hlU2l6ZSA9IHBzZXVkb1N0eWxlQ2FjaGUtPnNp
emUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhY2hlU2l6ZTsgKytpKSB7CisgICAg
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3UHNldWRvU3R5bGU7CisgICAgICAgIFBzZXVkb0lk
IHBzZXVkb0lkID0gcHNldWRvU3R5bGVDYWNoZS0+YXQoaSktPnN0eWxlVHlwZSgpOworICAgICAg
ICBpZiAocHNldWRvSWQgPT0gRklSU1RfTElORSB8fCBwc2V1ZG9JZCA9PSBGSVJTVF9MSU5FX0lO
SEVSSVRFRCkKKyAgICAgICAgICAgIG5ld1BzZXVkb1N0eWxlID0gcmVuZGVyZXItPnVuY2FjaGVk
Rmlyc3RMaW5lU3R5bGUobmV3U3R5bGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdQ
c2V1ZG9TdHlsZSA9IHJlbmRlcmVyLT5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKFBzZXVkb1N0eWxl
UmVxdWVzdChwc2V1ZG9JZCksIG5ld1N0eWxlLCBuZXdTdHlsZSk7CisgICAgICAgIGlmICghbmV3
UHNldWRvU3R5bGUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCpuZXdQ
c2V1ZG9TdHlsZSAhPSAqcHNldWRvU3R5bGVDYWNoZS0+YXQoaSkpIHsKKyAgICAgICAgICAgIGlm
IChwc2V1ZG9JZCA8IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEKQorICAgICAgICAgICAgICAgIG5l
d1N0eWxlLT5zZXRIYXNQc2V1ZG9TdHlsZShwc2V1ZG9JZCk7CisgICAgICAgICAgICBuZXdTdHls
ZS0+YWRkQ2FjaGVkUHNldWRvU3R5bGUobmV3UHNldWRvU3R5bGUpOworICAgICAgICAgICAgaWYg
KHBzZXVkb0lkID09IEZJUlNUX0xJTkUgfHwgcHNldWRvSWQgPT0gRklSU1RfTElORV9JTkhFUklU
RUQpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGFuIGFjdHVhbCBk
aWZmIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcmVwYWludCB2cy4gbGF5b3V0CisgICAgICAgICAg
ICAgICAgLy8gaXMgbmVlZGVkLCBidXQgZm9yIG5vdyBqdXN0IGFzc3VtZSBhIGxheW91dCB3aWxs
IGJlIHJlcXVpcmVkLiBUaGUgZGlmZiBjb2RlCisgICAgICAgICAgICAgICAgLy8gaW4gUmVuZGVy
T2JqZWN0OjpzZXRTdHlsZSB3b3VsZCBuZWVkIHRvIGJlIGZhY3RvcmVkIG91dCBzbyB0aGF0IGl0
IGNvdWxkIGJlIHJldXNlZC4KKyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNMYXlv
dXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRp
YyBDaGFuZ2UgcmVzb2x2ZUxvY2FsKEVsZW1lbnQqIGN1cnJlbnQsIENoYW5nZSBpbmhlcml0ZWRD
aGFuZ2UpCit7CisgICAgQ2hhbmdlIGxvY2FsQ2hhbmdlID0gRGV0YWNoOworICAgIFJlZlB0cjxS
ZW5kZXJTdHlsZT4gbmV3U3R5bGU7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBjdXJyZW50U3R5
bGUgPSBjdXJyZW50LT5yZW5kZXJTdHlsZSgpOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
Y3VycmVudC0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoY3VycmVudFN0eWxlKSB7CisgICAgICAgIG5l
d1N0eWxlID0gY3VycmVudC0+c3R5bGVGb3JSZW5kZXJlcigpOworICAgICAgICBsb2NhbENoYW5n
ZSA9IGRldGVybWluZUNoYW5nZShjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgpLCBk
b2N1bWVudC0+c2V0dGluZ3MoKSk7CisgICAgfQorICAgIGlmIChsb2NhbENoYW5nZSA9PSBEZXRh
Y2gpIHsKKyAgICAgICAgTm9kZTo6QXR0YWNoQ29udGV4dCByZWF0dGFjaENvbnRleHQ7CisgICAg
ICAgIHJlYXR0YWNoQ29udGV4dC5yZXNvbHZlZFN0eWxlID0gbmV3U3R5bGUuZ2V0KCk7CisgICAg
ICAgIGN1cnJlbnQtPnJlYXR0YWNoKHJlYXR0YWNoQ29udGV4dCk7CisgICAgICAgIHJldHVybiBE
ZXRhY2g7CisgICAgfQorCisgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjdXJyZW50
LT5yZW5kZXJlcigpKSB7CisgICAgICAgIGlmIChsb2NhbENoYW5nZSAhPSBOb0NoYW5nZSB8fCBw
c2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKHJlbmRlcmVyLCBuZXdTdHlsZS5nZXQoKSkgfHwgKGlu
aGVyaXRlZENoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3JjZWRTdHlsZVJl
Y2FsY1Byb3BhZ2F0aW9uKCkpIHx8IGN1cnJlbnQtPnN0eWxlQ2hhbmdlVHlwZSgpID09IFN5bnRo
ZXRpY1N0eWxlQ2hhbmdlKQorICAgICAgICAgICAgcmVuZGVyZXItPnNldEFuaW1hdGFibGVTdHls
ZShuZXdTdHlsZS5nZXQoKSk7CisgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQtPm5lZWRzU3R5bGVS
ZWNhbGMoKSkgeworICAgICAgICAgICAgLy8gQWx0aG91Z2ggbm8gY2hhbmdlIG9jY3VycmVkLCB3
ZSB1c2UgdGhlIG5ldyBzdHlsZSBzbyB0aGF0IHRoZSBjb3VzaW4gc3R5bGUgc2hhcmluZyBjb2Rl
IHdvbid0IGdldAorICAgICAgICAgICAgLy8gZm9vbGVkIGludG8gYmVsaWV2aW5nIHRoaXMgc3R5
bGUgaXMgdGhlIHNhbWUuCisgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGVJbnRlcm5hbChu
ZXdTdHlsZS5nZXQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiAicmVtIiB1bml0
cyBhcmUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQg
ZWxlbWVudCdzIGZvbnQgc2l6ZSBjaGFuZ2VzLCB0aGVuIGdvIGFoZWFkIGFuZCBmb3JjZSBmb250
IHVwZGF0aW5nCisgICAgLy8gYWxsIHRoZSB3YXkgZG93biB0aGUgdHJlZS4gVGhpcyBpcyBzaW1w
bGVyIHRoYW4gaGF2aW5nIHRvIG1haW50YWluIGEgY2FjaGUgb2Ygb2JqZWN0cyAoYW5kIHN1Y2gg
Zm9udCBzaXplIGNoYW5nZXMgc2hvdWxkIGJlIHJhcmUgYW55d2F5KS4KKyAgICBpZiAoZG9jdW1l
bnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPnVzZXNSZW1Vbml0cygpICYmIGRvY3VtZW50LT5k
b2N1bWVudEVsZW1lbnQoKSA9PSBjdXJyZW50ICYmIGxvY2FsQ2hhbmdlICE9IE5vQ2hhbmdlICYm
IGN1cnJlbnRTdHlsZSAmJiBuZXdTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmZvbnRTaXplKCkgIT0g
bmV3U3R5bGUtPmZvbnRTaXplKCkpIHsKKyAgICAgICAgLy8gQ2FjaGVkIFJlbmRlclN0eWxlcyBt
YXkgZGVwZW5kIG9uIHRoZSByZSB1bml0cy4KKyAgICAgICAgaWYgKFN0eWxlUmVzb2x2ZXIqIHN0
eWxlUmVzb2x2ZXIgPSBkb2N1bWVudC0+c3R5bGVSZXNvbHZlcklmRXhpc3RzKCkpCisgICAgICAg
ICAgICBzdHlsZVJlc29sdmVyLT5pbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSgpOwor
ICAgICAgICByZXR1cm4gRm9yY2U7CisgICAgfQorICAgIGlmIChpbmhlcml0ZWRDaGFuZ2UgPT0g
Rm9yY2UpCisgICAgICAgIHJldHVybiBGb3JjZTsKKyAgICBpZiAoY3VycmVudC0+c3R5bGVDaGFu
Z2VUeXBlKCkgPj0gRnVsbFN0eWxlQ2hhbmdlKQorICAgICAgICByZXR1cm4gRm9yY2U7CisKKyAg
ICByZXR1cm4gbG9jYWxDaGFuZ2U7Cit9CisKK3ZvaWQgcmVzb2x2ZVRyZWUoRWxlbWVudCogY3Vy
cmVudCwgQ2hhbmdlIGNoYW5nZSkKK3sKKyAgICBBU1NFUlQoY2hhbmdlICE9IERldGFjaCk7CisK
KyAgICBpZiAoY3VycmVudC0+aGFzQ3VzdG9tU3R5bGVDYWxsYmFja3MoKSkgeworICAgICAgICBp
ZiAoIWN1cnJlbnQtPndpbGxSZWNhbGNTdHlsZShjaGFuZ2UpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGJvb2wgaGFzUGFyZW50U3R5bGUgPSBjdXJyZW50LT5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKSAmJiBjdXJyZW50LT5wYXJlbnROb2RlRm9yUmVuZGVyaW5n
QW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKTsKKyAgICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVs
ZXMgPSBjdXJyZW50LT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7Cisg
ICAgYm9vbCBoYXNJbmRpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50LT5jaGlsZHJlbkFmZmVj
dGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKCk7CisKKyAgICBpZiAoY2hhbmdlID4gTm9DaGFu
Z2UgfHwgY3VycmVudC0+bmVlZHNTdHlsZVJlY2FsYygpKQorICAgICAgICBjdXJyZW50LT5yZXNl
dENvbXB1dGVkU3R5bGUoKTsKKworICAgIGlmIChoYXNQYXJlbnRTdHlsZSAmJiAoY2hhbmdlID49
IEluaGVyaXQgfHwgY3VycmVudC0+bmVlZHNTdHlsZVJlY2FsYygpKSkKKyAgICAgICAgY2hhbmdl
ID0gcmVzb2x2ZUxvY2FsKGN1cnJlbnQsIGNoYW5nZSk7CisKKyAgICBpZiAoY2hhbmdlICE9IERl
dGFjaCkgeworICAgICAgICBTdHlsZVJlc29sdmVyUGFyZW50UHVzaGVyIHBhcmVudFB1c2hlcihj
dXJyZW50KTsKKworICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gY3VycmVudC0+
c2hhZG93KCkpIHsKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ct
PmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKSB7
CisgICAgICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKKyAgICAgICAgICAgICAgICBz
aGFkb3ctPnJlY2FsY1N0eWxlKGNoYW5nZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBjdXJyZW50LT51cGRhdGVQc2V1ZG9FbGVtZW50KEJFRk9SRSwgY2hhbmdlKTsKKwor
ICAgICAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBpcyBnb29kIGVub3VnaCBmb3IgOmhvdmVyICsg
Zm9vLCBidXQgaXQgaXMgbm90IGdvb2QgZW5vdWdoIGZvciA6aG92ZXIgKyBmb28gKyBiYXIuCisg
ICAgICAgIC8vIEZvciBub3cgd2Ugd2lsbCBqdXN0IHdvcnJ5IGFib3V0IHRoZSBjb21tb24gY2Fz
ZSwgc2luY2UgaXQncyBhIGxvdCB0cmlja2llciB0byBnZXQgdGhlIHNlY29uZCBjYXNlIHJpZ2h0
CisgICAgICAgIC8vIHdpdGhvdXQgZG9pbmcgd2F5IHRvbyBtdWNoIHJlLXJlc29sdXRpb24uCisg
ICAgICAgIGJvb2wgZm9yY2VDaGVja09mTmV4dEVsZW1lbnRTaWJsaW5nID0gZmFsc2U7CisgICAg
ICAgIGJvb2wgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBmYWxzZTsKKyAgICAgICAg
Zm9yIChOb2RlKiBjaGlsZCA9IGN1cnJlbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNUZXh0Tm9k
ZSgpKSB7CisgICAgICAgICAgICAgICAgdG9UZXh0KGNoaWxkKS0+cmVjYWxjVGV4dFN0eWxlKGNo
YW5nZSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoIWNoaWxkLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICBFbGVtZW50KiBjaGlsZEVsZW1lbnQgPSB0b0VsZW1lbnQoY2hpbGQp
OworICAgICAgICAgICAgYm9vbCBjaGlsZFJ1bGVzQ2hhbmdlZCA9IGNoaWxkRWxlbWVudC0+bmVl
ZHNTdHlsZVJlY2FsYygpICYmIGNoaWxkRWxlbWVudC0+c3R5bGVDaGFuZ2VUeXBlKCkgPT0gRnVs
bFN0eWxlQ2hhbmdlOworICAgICAgICAgICAgaWYgKChmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNp
YmxpbmcgfHwgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcpKQorICAgICAgICAgICAgICAg
IGNoaWxkRWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgICAgICAgICAgaWYgKGNo
YW5nZSA+PSBJbmhlcml0IHx8IGNoaWxkRWxlbWVudC0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkg
fHwgY2hpbGRFbGVtZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKKyAgICAgICAgICAgICAgICBw
YXJlbnRQdXNoZXIucHVzaCgpOworICAgICAgICAgICAgICAgIHJlc29sdmVUcmVlKGNoaWxkRWxl
bWVudCwgY2hhbmdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcmNlQ2hlY2tPZk5l
eHRFbGVtZW50U2libGluZyA9IGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0RpcmVjdEFkamFjZW50
UnVsZXM7CisgICAgICAgICAgICBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGluZyA9IGZvcmNl
Q2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nIHx8IChjaGlsZFJ1bGVzQ2hhbmdlZCAmJiBoYXNJbmRp
cmVjdEFkamFjZW50UnVsZXMpOworICAgICAgICB9CisKKyAgICAgICAgY3VycmVudC0+dXBkYXRl
UHNldWRvRWxlbWVudChBRlRFUiwgY2hhbmdlKTsKKyAgICB9CisKKyAgICBjdXJyZW50LT5jbGVh
ck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBjdXJyZW50LT5jbGVhckNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpOworICAgIAorICAgIGlmIChjdXJyZW50LT5oYXNDdXN0b21TdHlsZUNhbGxiYWNrcygp
KQorICAgICAgICBjdXJyZW50LT5kaWRSZWNhbGNTdHlsZShjaGFuZ2UpOworfQorCit9CisKK30K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmgJKHJldmlzaW9uIDE1
Mzc4MykJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZVRyZWUuaDoxNTM3ODMp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgU3R5bGVSZXNvbHZlVHJlZV9oCisjZGVmaW5lIFN0eWxlUmVzb2x2
ZVRyZWVfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBS
ZW5kZXJTdHlsZTsKK2NsYXNzIFNldHRpbmdzOworCituYW1lc3BhY2UgU3R5bGUgeworCitlbnVt
IENoYW5nZSB7IE5vQ2hhbmdlLCBOb0luaGVyaXQsIEluaGVyaXQsIERldGFjaCwgRm9yY2UgfTsK
Kwordm9pZCByZXNvbHZlVHJlZShFbGVtZW50KiwgQ2hhbmdlKTsKKworQ2hhbmdlIGRldGVybWlu
ZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJlbmRlclN0eWxlKiwgU2V0dGluZ3Mq
KTsKKworfQorCit9CisKKyNlbmRpZgo=
</data>
<flag name="commit-queue"
          id="230150"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208259</attachid>
            <date>2013-08-07 05:53:33 -0700</date>
            <delta_ts>2013-08-07 07:21:02 -0700</delta_ts>
            <desc>another</desc>
            <filename>create-style-dir-2.patch</filename>
            <type>text/plain</type>
            <size>43332</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mzc4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA4LTA3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgV2ViQ29yZS9zdHls
ZSBhbmQgbW92ZSBTdHlsZVJlc29sdmVUcmVlIHRoZXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlL2NzcyBpcyBibG9hdGVkLiBXZSBzaG91
bGQgbW92ZSB0aGUgaW50ZXJuYWwgc3R5bGUgcmVwcmVzZW50YXRpb24gYW5kIHRoZSBzdHlsZSBy
ZXNvbHZlcgorICAgICAgICByZWxhdGVkIGNvZGUgdG8gYSBkaXJlY3Rvcnkgb2YgdGhlaXIgb3du
LiBDU1MgbGFuZ3VhZ2UgcmVsYXRlZCBjb2RlIGluY2x1ZGluZyBwYXJzZXIgYW5kIAorICAgICAg
ICBDU1NPTSBzdGF5cyB1bmRlciBjc3MuCisKKyAgICAgICAgVGhpbmdzIG5hbWVkIFN0eWxlRm9v
IHNob3VsZCBnZW5lcmFsbHkgbW92ZSB1bmRlciBXZWJDb3JlL3N0eWxlLiBUaGV5IHNob3VsZCBh
bHNvIGJlIG1vdmVkIHRvCisgICAgICAgIHRoZSBTdHlsZSBuYW1lc3BhY2UgYXQgdGhlIHNhbWUg
dGltZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlQ29tbW9uLnByb3BzOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9jb3B5Rm9yd2FyZGluZ0hlYWRlcnMuY21kOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlVHJlZS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZVRyZWUuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBzdHlsZTogQWRkZWQuCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlVHJl
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmNw
cC4KKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVUcmVlLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmguCisKIDIwMTMtMDgtMDcgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc3R5bGUgcmVjYWxjdWxh
dGlvbiBvdXQgZnJvbSBFbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MTUzNzgzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDYgKzgxLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQkNPUkVfRElSfS9yZW5kZXJpbmcvc3R5bGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3JlbmRl
cmluZy9zdmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N0b3JhZ2UiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3N0eWxlIgogICAgICIke1dFQkNPUkVfRElSfS9zdmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3N2Zy9hbmltYXRpb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKQEAgLTEw
OTEsNyArMTA5Miw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKICAgICBjc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHAKICAgICBjc3MvU3R5
bGVSZXNvbHZlci5jcHAKLSAgICBjc3MvU3R5bGVSZXNvbHZlVHJlZS5jcHAKICAgICBjc3MvU3R5
bGVSdWxlLmNwcAogICAgIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCiAgICAgY3NzL1N0eWxlU2Nv
cGVSZXNvbHZlci5jcHAKQEAgLTIzMjcsNiArMjMyNyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBzdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKICAgICBzdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmNwcAogCisgICAgc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKKwogICAgIHN2Zy9D
b2xvckRpc3RhbmNlLmNwcAogICAgIHN2Zy9TVkdBRWxlbWVudC5jcHAKICAgICBzdmcvU1ZHQWx0
R2x5cGhEZWZFbGVtZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDE1
Mzc4MikKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBA
IC05NSw2ICs5NSw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2ZyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3RvcmFnZSBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3R5bGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJDb3JlL3N2ZyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbiBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzIFwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTUzNzgzKQorKysgU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjc1MSw4ICsyNzUxLDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggXAotCVNvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVUcmVlLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZVRyZWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUlt
cG9ydC5jcHAgXApAQCAtNDcxNyw2ICs0NzE1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VUcmFja2VyQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2
ZVRyZWUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmggXAog
CVNvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBcCiAJU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9BYnN0cmFjdFdvcmtlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RX
b3JrZXIuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDE1Mzc4MykKKysrIFNvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw3ICszMzMsNiBAQCBTT1VS
Q0VTICs9IFwKICAgICBjc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgXAogICAgIGNzcy9TdHlsZVBy
b3BlcnR5U2hvcnRoYW5kLmNwcCBcCiAgICAgY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIFwKLSAgICBj
c3MvU3R5bGVSZXNvbHZlVHJlZS5jcHAgXAogICAgIGNzcy9TdHlsZVJ1bGUuY3BwIFwKICAgICBj
c3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBcCiAgICAgY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAg
XApAQCAtMTI4Miw2ICsxMjgxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgc3RvcmFnZS9TdG9yYWdl
U3luY01hbmFnZXIuY3BwIFwKICAgICBzdG9yYWdlL1N0b3JhZ2VTdHJhdGVneS5jcHAgXAogICAg
IHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIFwKKyAgICBzdHlsZS9TdHlsZVJlc29sdmVUcmVl
LmNwcCBcCiAgICAgdGVzdGluZy9JbnRlcm5hbHMuY3BwIFwKICAgICB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwIFwKICAgICB4bWwvRE9NUGFyc2VyLmNwcCBcCkBAIC0xNTQzLDcgKzE1NDMs
NiBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvU3R5bGVQcm9wZXJ0eVNldC5oIFwKICAgICBjc3Mv
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIFwKICAgICBjc3MvU3R5bGVSZXNvbHZlci5oIFwKLSAg
ICBjc3MvU3R5bGVSZXNvbHZlVHJlZS5oIFwKICAgICBjc3MvU3R5bGVSdWxlLmggXAogICAgIGNz
cy9TdHlsZVJ1bGVJbXBvcnQuaCBcCiAgICAgY3NzL1N0eWxlU2hlZXQuaCBcCkBAIC0yNjAyLDYg
KzI2MDEsNyBAQCBIRUFERVJTICs9IFwKICAgICBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaCBcCiAg
ICAgc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oIFwKICAgICBzdG9yYWdlL1N0b3JhZ2VUcmFja2Vy
Q2xpZW50LmggXAorICAgIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuaCBcCiAgICAgc3ZnL2FuaW1h
dGlvbi9TTUlMVGltZUNvbnRhaW5lci5oIFwKICAgICBzdmcvYW5pbWF0aW9uL1NNSUxUaW1lLmgg
XAogICAgIHN2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
aQkocmV2aXNpb24gMTUzNzgyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtp
bmcgY29weSkKQEAgLTg5LDYgKzg5LDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNF
X0RJUi9yZW5kZXJpbmcvc3R5bGUgXAogICAgICQkU09VUkNFX0RJUi9yZW5kZXJpbmcvc3ZnIFwK
ICAgICAkJFNPVVJDRV9ESVIvc3RvcmFnZSBcCisgICAgJCRTT1VSQ0VfRElSL3N0eWxlIFwKICAg
ICAkJFNPVVJDRV9ESVIvc3ZnIFwKICAgICAkJFNPVVJDRV9ESVIvc3ZnL2FuaW1hdGlvbiBcCiAg
ICAgJCRTT1VSQ0VfRElSL3N2Zy9ncmFwaGljcyBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1Mzc4MykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTkzNTMsNyArOTM1Myw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cY3NzXFN0eWxlUmVzb2x2ZVRyZWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cY3NzXFN0eWxlUnVsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxjc3NcU3R5bGVSdWxlSW1wb3J0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGNzc1xTdHlsZVNoZWV0LmNwcCIgLz4KQEAgLTE3NjIyLDYgKzE3NjIxLDcgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFnZVRocmVhZC5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdG9yYWdlXFN0b3JhZ2VUcmFja2VyLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0eWxlXFN0eWxlUmVzb2x2ZVRyZWUuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnJpZGdlXGpzY1xCcmlkZ2VKU0MuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cYnJpZGdlXGNcY19jbGFzcy5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxicmlkZ2VcY1xjX2luc3RhbmNlLmNwcCIgLz4K
QEAgLTE5ODY3LDcgKzE5ODY3LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xT
dHlsZVByb3BlcnR5U2V0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcU3R5
bGVQcm9wZXJ0eVNob3J0aGFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XFN0eWxlUmVzb2x2ZXIuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xTdHls
ZVJlc29sdmVUcmVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcU3R5bGVS
dWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcU3R5bGVSdWxlSW1wb3J0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcU3R5bGVTaGVldC5oIiAvPgpA
QCAtMjA5NDAsNiArMjA5MzksNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3RvcmFn
ZVxTdG9yYWdlU3luY01hbmFnZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0
b3JhZ2VcU3RvcmFnZVRocmVhZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3Rv
cmFnZVxTdG9yYWdlVHJhY2tlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5
bGVcU3R5bGVSZXNvbHZlVHJlZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYnJp
ZGdlXEJyaWRnZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYnJpZGdlXGpzY1xC
cmlkZ2VKU0MuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJyaWRnZVxjXGNfY2xh
c3MuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlQ29t
bW9uLnByb3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlQ29tbW9uLnByb3BzCShyZXZpc2lvbiAxNTM3ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZUNvbW1vbi5wcm9wcwkod29ya2luZyBjb3B5KQpAQCAtNyw3
ICs3LDcgQEAKICAgPC9Qcm9wZXJ0eUdyb3VwPg0KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+DQog
ICAgIDxDbENvbXBpbGU+DQotICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChQ
cm9qZWN0RGlyKS4uOyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGZpbGVzeXN0ZW07JChQcm9qZWN0
RGlyKS4uXE1vZHVsZXNcZ2VvbG9jYXRpb247JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcaW5kZXhl
ZGRiOyQoUHJvamVjdERpcikuLlxNb2R1bGVzXG1lZGlhc291cmNlOyQoUHJvamVjdERpcikuLlxN
b2R1bGVzXG5hdmlnYXRvcmNvbnRlbnR1dGlsczskKFByb2plY3REaXIpLi5cTW9kdWxlc1xzcGVl
Y2g7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNccHJveGltaXR5OyQoUHJvamVjdERpcikuLlxNb2R1
bGVzXHF1b3RhOyQoUHJvamVjdERpcikuLlxNb2R1bGVzXG5vdGlmaWNhdGlvbnM7JChQcm9qZWN0
RGlyKS4uXE1vZHVsZXNcd2ViZGF0YWJhc2U7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcd2Vic29j
a2V0czskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eTskKFByb2plY3REaXIpLi5cYWNjZXNz
aWJpbGl0eVx3aW47JChQcm9qZWN0RGlyKS4uXGJyaWRnZTskKFByb2plY3REaXIpLi5cYnJpZGdl
XGM7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2M7JChQcm9qZWN0RGlyKS4uXGNzczskKFByb2pl
Y3REaXIpLi5cZWRpdGluZzskKFByb2plY3REaXIpLi5cZmlsZWFwaTskKFByb2plY3REaXIpLi5c
cmVuZGVyaW5nOyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sOyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmdcc3R5bGU7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdmc7JChQcm9qZWN0
RGlyKS4uXGJpbmRpbmdzOyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljOyQoUHJvamVj
dERpcikuLlxiaW5kaW5nc1xqczskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lhbGl6
YXRpb247JChQcm9qZWN0RGlyKS4uXGRvbTskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQ7JChQ
cm9qZWN0RGlyKS4uXGhpc3Rvcnk7JChQcm9qZWN0RGlyKS4uXGh0bWw7JChQcm9qZWN0RGlyKS4u
XGh0bWxcY2FudmFzOyQoUHJvamVjdERpcikuLlxodG1sXGZvcm1zOyQoUHJvamVjdERpcikuLlxo
dG1sXHBhcnNlcjskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3c7JChQcm9qZWN0RGlyKS4uXGh0
bWxcdHJhY2s7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvcjskKFByb2plY3REaXIpLi5cbG9hZGVy
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGU7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxh
cmNoaXZlOyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZjskKFByb2plY3REaXIpLi5c
bG9hZGVyXGNhY2hlOyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbjskKFByb2plY3REaXIpLi5c
bWF0aG1sOyQoUHJvamVjdERpcikuLlxwYWdlOyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlv
bjskKFByb2plY3REaXIpLi5ccGFnZVxzY3JvbGxpbmc7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2lu
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybTskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0
aW9uOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrOyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxzcWw7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbjskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cbmV0d29yazskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW47JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGNmOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljczskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2E7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzXGNwdVxhcm1cZmlsdGVyczskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcZmlsdGVyczskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm07
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlOyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0
ZXh0OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXI7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbjskKFByb2plY3REaXIpLi5ceG1sOyQoUHJvamVjdERp
cikuLlx4bWxccGFyc2VyOyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmozMlxXZWJDb3JlXERl
cml2ZWRTb3VyY2VzOyQoUHJvamVjdERpcikuLlxwbHVnaW5zOyQoUHJvamVjdERpcikuLlxwbHVn
aW5zXHdpbjskKFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbjskKFByb2plY3REaXIpLi5cc3Zn
XGdyYXBoaWNzOyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllczskKFByb2plY3REaXIpLi5c
c3ZnXGdyYXBoaWNzXGZpbHRlcnM7JChQcm9qZWN0RGlyKS4uXHN2ZzskKFByb2plY3REaXIpLi5c
dGVzdGluZzskKFByb2plY3REaXIpLi5cd21sOyQoUHJvamVjdERpcikuLlxzdG9yYWdlOyQoUHJv
amVjdERpcikuLlx3ZWJzb2NrZXRzOyQoUHJvamVjdERpcikuLlx3b3JrZXJzOyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxpbmNsdWRlOyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHBy
aXZhdGU7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmU7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZTskKFBy
b2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnM7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdy
YXBoaWNzXGdwdTskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZWdsOyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xzdXJmYWNlczskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cZ3JhcGhpY3Ncc3VyZmFjZXNcZWdsOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGlj
c1xvcGVuZ2w7JChXZWJLaXRfTGlicmFyaWVzKVxpbmNsdWRlOyQoV2ViS2l0X0xpYnJhcmllcylc
aW5jbHVkZVxwcml2YXRlOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVkZVxwcml2YXRlXEphdmFT
Y3JpcHRDb3JlOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVkZVxzcWxpdGU7JChXZWJLaXRfTGli
cmFyaWVzKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVk
ZVx6bGliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRl
RGlyZWN0b3JpZXM+DQorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChQcm9q
ZWN0RGlyKS4uOyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGZpbGVzeXN0ZW07JChQcm9qZWN0RGly
KS4uXE1vZHVsZXNcZ2VvbG9jYXRpb247JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcaW5kZXhlZGRi
OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXG1lZGlhc291cmNlOyQoUHJvamVjdERpcikuLlxNb2R1
bGVzXG5hdmlnYXRvcmNvbnRlbnR1dGlsczskKFByb2plY3REaXIpLi5cTW9kdWxlc1xzcGVlY2g7
JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNccHJveGltaXR5OyQoUHJvamVjdERpcikuLlxNb2R1bGVz
XHF1b3RhOyQoUHJvamVjdERpcikuLlxNb2R1bGVzXG5vdGlmaWNhdGlvbnM7JChQcm9qZWN0RGly
KS4uXE1vZHVsZXNcd2ViZGF0YWJhc2U7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcd2Vic29ja2V0
czskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eTskKFByb2plY3REaXIpLi5cYWNjZXNzaWJp
bGl0eVx3aW47JChQcm9qZWN0RGlyKS4uXGJyaWRnZTskKFByb2plY3REaXIpLi5cYnJpZGdlXGM7
JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2M7JChQcm9qZWN0RGlyKS4uXGNzczskKFByb2plY3RE
aXIpLi5cZWRpdGluZzskKFByb2plY3REaXIpLi5cZmlsZWFwaTskKFByb2plY3REaXIpLi5ccmVu
ZGVyaW5nOyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcbWF0aG1sOyQoUHJvamVjdERpcikuLlxy
ZW5kZXJpbmdcc3R5bGU7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdmc7JChQcm9qZWN0RGly
KS4uXGJpbmRpbmdzOyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljOyQoUHJvamVjdERp
cikuLlxiaW5kaW5nc1xqczskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lhbGl6YXRp
b247JChQcm9qZWN0RGlyKS4uXGRvbTskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQ7JChQcm9q
ZWN0RGlyKS4uXGhpc3Rvcnk7JChQcm9qZWN0RGlyKS4uXGh0bWw7JChQcm9qZWN0RGlyKS4uXGh0
bWxcY2FudmFzOyQoUHJvamVjdERpcikuLlxodG1sXGZvcm1zOyQoUHJvamVjdERpcikuLlxodG1s
XHBhcnNlcjskKFByb2plY3REaXIpLi5caHRtbFxzaGFkb3c7JChQcm9qZWN0RGlyKS4uXGh0bWxc
dHJhY2s7JChQcm9qZWN0RGlyKS4uXGluc3BlY3RvcjskKFByb2plY3REaXIpLi5cbG9hZGVyOyQo
UHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGU7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNo
aXZlOyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZVxjZjskKFByb2plY3REaXIpLi5cbG9h
ZGVyXGNhY2hlOyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbjskKFByb2plY3REaXIpLi5cbWF0
aG1sOyQoUHJvamVjdERpcikuLlxwYWdlOyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbjsk
KFByb2plY3REaXIpLi5ccGFnZVxzY3JvbGxpbmc7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2luOyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybTskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9u
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxz
cWw7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbjskKFByb2plY3REaXIpLi5ccGxhdGZvcm1c
bmV0d29yazskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW47JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXGNmOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljczskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2E7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdy
YXBoaWNzXGNwdVxhcm1cZmlsdGVyczskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
ZmlsdGVyczskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm07JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlOyQoUHJvamVjdERpcikuLlxw
bGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zOyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXI7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXHdpbjskKFByb2plY3REaXIpLi5ceG1sOyQoUHJvamVjdERpciku
Llx4bWxccGFyc2VyOyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmozMlxXZWJDb3JlXERlcml2
ZWRTb3VyY2VzOyQoUHJvamVjdERpcikuLlxwbHVnaW5zOyQoUHJvamVjdERpcikuLlxwbHVnaW5z
XHdpbjskKFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbjskKFByb2plY3REaXIpLi5cc3ZnXGdy
YXBoaWNzOyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllczskKFByb2plY3REaXIpLi5cc3Zn
XGdyYXBoaWNzXGZpbHRlcnM7JChQcm9qZWN0RGlyKS4uXHN2ZzskKFByb2plY3REaXIpLi5cdGVz
dGluZzskKFByb2plY3REaXIpLi5cd21sOyQoUHJvamVjdERpcikuLlxzdG9yYWdlOyQoUHJvamVj
dERpcikuLlxzdHlsZTskKFByb2plY3REaXIpLi5cd2Vic29ja2V0czskKFByb2plY3REaXIpLi5c
d29ya2VyczskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZTskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcaW5jbHVkZVxwcml2YXRlOyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRl
XEphdmFTY3JpcHRDb3JlOyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVc
SmF2YVNjcmlwdENvcmU7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzOyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xncHU7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdy
YXBoaWNzXGVnbDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncc3VyZmFjZXM7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHN1cmZhY2VzXGVnbDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbmdsOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVkZTsk
KFdlYktpdF9MaWJyYXJpZXMpXGluY2x1ZGVccHJpdmF0ZTskKFdlYktpdF9MaWJyYXJpZXMpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZTskKFdlYktpdF9MaWJyYXJpZXMpXGluY2x1ZGVc
c3FsaXRlOyQoV2ViS2l0X0xpYnJhcmllcylcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZTskKFdlYktp
dF9MaWJyYXJpZXMpXGluY2x1ZGVcemxpYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMp
PC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPg0KICAgICAgIDxQcmVwcm9jZXNzb3JEZWZp
bml0aW9ucz5ESVNBQkxFXzNEX1JFTkRFUklORztXRUJDT1JFX0NPTlRFWFRfTUVOVVM7JShQcmVw
cm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPg0KICAgICAgIDxQ
cmVjb21waWxlZEhlYWRlcj5Vc2U8L1ByZWNvbXBpbGVkSGVhZGVyPg0KICAgICAgIDxQcmVjb21w
aWxlZEhlYWRlckZpbGU+V2ViQ29yZVByZWZpeC5oPC9QcmVjb21waWxlZEhlYWRlckZpbGU+DQpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2NvcHlGb3J3YXJkaW5nSGVhZGVy
cy5jbWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2NvcHlG
b3J3YXJkaW5nSGVhZGVycy5jbWQJKHJldmlzaW9uIDE1Mzc4MikKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9jb3B5Rm9yd2FyZGluZ0hlYWRlcnMuY21kCSh3b3JraW5nIGNvcHkp
CkBAIC04MSw2ICs4MSw3IEBAIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxzdmdcZ3JhcGhp
Y3MKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxzdmdccHJvcGVydGllc1wqLmgiICIlQ09O
RklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmUiCiB4Y29weSAveSAvZCAiJVByb2pl
Y3REaXIlLi5cc3ZnXCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29y
ZSIKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxzdG9yYWdlXCouaCIgIiVDT05GSUdVUkFU
SU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKK3hjb3B5IC95IC9kICIlUHJvamVjdERpciUu
LlxzdHlsZVwqLmgiICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmUiCiB4
Y29weSAveSAvZCAiJVByb2plY3REaXIlLi5cd29ya2Vyc1wqLmgiICIlQ09ORklHVVJBVElPTkJV
SUxERElSJVxpbmNsdWRlXFdlYkNvcmUiCiB4Y29weSAveSAvZCAiJVByb2plY3REaXIlLi5cRm9y
d2FyZGluZ0hlYWRlcnNcYmluZGluZ3NcKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5j
bHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzXGJpbmRpbmdzIgogeGNvcHkgL3kgL2QgIiVQ
cm9qZWN0RGlyJS4uXEZvcndhcmRpbmdIZWFkZXJzXHBhcnNlclwqLmgiICIlQ09ORklHVVJBVElP
TkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnNccGFyc2VyIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTUzNzgzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzA0Miw2ICsxMzA0Miw3IEBACiAJ
CQkJNURDRjgzNjkwRDU5MTU3ODAwOTUzQkM2IC8qIHBsdWdpbnMgKi8sCiAJCQkJRjUyM0QyRjMw
MkRFNDQzQjAxODYzNUNBIC8qIHJlbmRlcmluZyAqLywKIAkJCQkxQUU4MkVDOTBDQUFFMTc3MDAy
MjM3QUUgLyogc3RvcmFnZSAqLywKKwkJCQlFNDc2M0Q0QTE3QjI3MDQ5MDBEMzUyMDYgLyogc3R5
bGUgKi8sCiAJCQkJQjIyMjc3Q0EwRDAwQkYxRTAwNzFCNzgyIC8qIHN2ZyAqLywKIAkJCQk0MTdE
QTRDRDEzNzM0MjA0MDA3QzU3RkIgLyogdGVzdGluZyAqLywKIAkJCQkyRTQzNDYzMTBGNTQ2QTY4
MDBCMEYxQkEgLyogd29ya2VycyAqLywKQEAgLTE5NjA1LDYgKzE5NjA2LDE1IEBACiAJCQlwYXRo
ID0gYW5pbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTQ3NjNE
NEExN0IyNzA0OTAwRDM1MjA2IC8qIHN0eWxlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlFNERFQUExNTE3QTkzREMzMDAwRTA0MzAgLyogU3R5bGVSZXNv
bHZlVHJlZS5jcHAgKi8sCisJCQkJRTRERUFBMTYxN0E5M0RDMzAwMEUwNDMwIC8qIFN0eWxlUmVz
b2x2ZVRyZWUuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gc3R5bGU7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQlFRDUwMURDOTBCMjQ5RjM5MDBBRTE4RDkgLyogbWFjICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE5ODQ0LDggKzE5ODU0
LDYgQEAKIAkJCQlFMUIyNTEwNTE1MkEwQkFGMDA2OUI3NzkgLyogU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZC5oICovLAogCQkJCUUxMzk4NjYxMTU0Nzg0NzQwMDFFM0Y2NSAvKiBTdHlsZVJlc29sdmVy
LmNwcCAqLywKIAkJCQlFMTM5ODY2MjE1NDc4NDc0MDAxRTNGNjUgLyogU3R5bGVSZXNvbHZlci5o
ICovLAotCQkJCUU0REVBQTE1MTdBOTNEQzMwMDBFMDQzMCAvKiBTdHlsZVJlc29sdmVUcmVlLmNw
cCAqLywKLQkJCQlFNERFQUExNjE3QTkzREMzMDAwRTA0MzAgLyogU3R5bGVSZXNvbHZlVHJlZS5o
ICovLAogCQkJCUU0QkJFRDRBMTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHlsZVJ1bGUuY3BwICovLAog
CQkJCUU0QkJFRDRCMTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHlsZVJ1bGUuaCAqLywKIAkJCQlFNDk0
NkVBQzE1NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmNwcCAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlVHJlZS5jcHAJKHJldmlzaW9uIDE1Mzc4MykKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSwyNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChr
bm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2
aXN0b0BrZGUub3JnKQotICogICAgICAgICAgIChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9z
dC5jb20pCi0gKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5v
cmcpCi0gKiAgICAgICAgICAgKEMpIDIwMDcgRGF2aWQgU21pdGggKGNhdGZpc2gubWFuQGdtYWls
LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSwgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAg
ICAgICAgICAgKEMpIDIwMDcgRXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZVRyZWUuaCIKLQotI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKLSNpbmNsdWRlICJOb2RlUmVu
ZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCi0jaW5jbHVkZSAiUmVuZGVy
T2JqZWN0LmgiCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTaGFkb3dSb290Lmgi
Ci0jaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgotI2luY2x1ZGUgIlRleHQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1uYW1lc3BhY2UgU3R5bGUgewotCi1DaGFuZ2UgZGV0ZXJtaW5lQ2hh
bmdlKGNvbnN0IFJlbmRlclN0eWxlKiBzMSwgY29uc3QgUmVuZGVyU3R5bGUqIHMyLCBTZXR0aW5n
cyogc2V0dGluZ3MpCi17Ci0gICAgaWYgKCFzMSB8fCAhczIpCi0gICAgICAgIHJldHVybiBEZXRh
Y2g7Ci0gICAgaWYgKHMxLT5kaXNwbGF5KCkgIT0gczItPmRpc3BsYXkoKSkKLSAgICAgICAgcmV0
dXJuIERldGFjaDsKLSAgICBpZiAoczEtPmhhc1BzZXVkb1N0eWxlKEZJUlNUX0xFVFRFUikgIT0g
czItPmhhc1BzZXVkb1N0eWxlKEZJUlNUX0xFVFRFUikpCi0gICAgICAgIHJldHVybiBEZXRhY2g7
Ci0gICAgLy8gV2UganVzdCBkZXRhY2ggaWYgYSByZW5kZXJlciBhY3F1aXJlcyBvciBsb3NlcyBh
IGNvbHVtbi1zcGFuLCBzaW5jZSBzcGFubmluZyBlbGVtZW50cwotICAgIC8vIHR5cGljYWxseSB3
b24ndCBjb250YWluIG11Y2ggY29udGVudC4KLSAgICBpZiAoczEtPmNvbHVtblNwYW4oKSAhPSBz
Mi0+Y29sdW1uU3BhbigpKQotICAgICAgICByZXR1cm4gRGV0YWNoOwotICAgIGlmIChzZXR0aW5n
cy0+cmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKSB7Ci0gICAgICAgIGJvb2wgc3BlY2lmaWVz
Q29sdW1uczEgPSAhczEtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFzMS0+aGFzQXV0b0NvbHVt
bldpZHRoKCk7Ci0gICAgICAgIGJvb2wgc3BlY2lmaWVzQ29sdW1uczIgPSAhczItPmhhc0F1dG9D
b2x1bW5Db3VudCgpIHx8ICFzMi0+aGFzQXV0b0NvbHVtbldpZHRoKCk7Ci0gICAgICAgIGlmIChz
cGVjaWZpZXNDb2x1bW5zMSAhPSBzcGVjaWZpZXNDb2x1bW5zMikKLSAgICAgICAgICAgIHJldHVy
biBEZXRhY2g7Ci0gICAgfQotICAgIGlmICghczEtPmNvbnRlbnREYXRhRXF1aXZhbGVudChzMikp
Ci0gICAgICAgIHJldHVybiBEZXRhY2g7Ci0gICAgLy8gV2hlbiB0ZXh0LWNvbWJpbmUgcHJvcGVy
dHkgaGFzIGJlZW4gY2hhbmdlZCwgd2UgbmVlZCB0byBwcmVwYXJlIGEgc2VwYXJhdGUgcmVuZGVy
ZXIgb2JqZWN0LgotICAgIC8vIFdoZW4gdGV4dC1jb21iaW5lIGlzIG9uLCB3ZSB1c2UgUmVuZGVy
Q29tYmluZVRleHQsIG90aGVyd2lzZSBSZW5kZXJUZXh0LgotICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTA2OQotICAgIGlmIChzMS0+aGFzVGV4dENvbWJp
bmUoKSAhPSBzMi0+aGFzVGV4dENvbWJpbmUoKSkKLSAgICAgICAgcmV0dXJuIERldGFjaDsKLSAg
ICAvLyBXZSBuZWVkIHRvIHJlYXR0YWNoIHRoZSBub2RlLCBzbyB0aGF0IGl0IGlzIG1vdmVkIHRv
IHRoZSBjb3JyZWN0IFJlbmRlckZsb3dUaHJlYWQuCi0gICAgaWYgKHMxLT5mbG93VGhyZWFkKCkg
IT0gczItPmZsb3dUaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuIERldGFjaDsKLSAgICAvLyBXaGVu
IHRoZSByZWdpb24gdGhyZWFkIGhhcyBjaGFuZ2VkLCB3ZSBuZWVkIHRvIHByZXBhcmUgYSBzZXBh
cmF0ZSByZW5kZXIgcmVnaW9uIG9iamVjdC4KLSAgICBpZiAoczEtPnJlZ2lvblRocmVhZCgpICE9
IHMyLT5yZWdpb25UaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuIERldGFjaDsKLQotICAgIGlmICgq
czEgIT0gKnMyKSB7Ci0gICAgICAgIGlmIChzMS0+aW5oZXJpdGVkTm90RXF1YWwoczIpKQotICAg
ICAgICAgICAgcmV0dXJuIEluaGVyaXQ7Ci0gICAgICAgIGlmIChzMS0+aGFzRXhwbGljaXRseUlu
aGVyaXRlZFByb3BlcnRpZXMoKSB8fCBzMi0+aGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRp
ZXMoKSkKLSAgICAgICAgICAgIHJldHVybiBJbmhlcml0OwotCi0gICAgICAgIHJldHVybiBOb0lu
aGVyaXQ7Ci0gICAgfQotICAgIC8vIElmIHRoZSBwc2V1ZG9TdHlsZXMgaGF2ZSBjaGFuZ2VkLCB3
ZSB3YW50IGFueSBTdHlsZUNoYW5nZSB0aGF0IGlzIG5vdCBOb0NoYW5nZQotICAgIC8vIGJlY2F1
c2Ugc2V0U3R5bGUgd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcgd2l0aCBhbnl0aGluZyBlbHNlLgot
ICAgIGlmIChzMS0+aGFzQW55UHVibGljUHNldWRvU3R5bGVzKCkpIHsKLSAgICAgICAgZm9yIChQ
c2V1ZG9JZCBwc2V1ZG9JZCA9IEZJUlNUX1BVQkxJQ19QU0VVRE9JRDsgcHNldWRvSWQgPCBGSVJT
VF9JTlRFUk5BTF9QU0VVRE9JRDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4ocHNl
dWRvSWQgKyAxKSkgewotICAgICAgICAgICAgaWYgKHMxLT5oYXNQc2V1ZG9TdHlsZShwc2V1ZG9J
ZCkpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogcHMyID0gczItPmdldENhY2hlZFBz
ZXVkb1N0eWxlKHBzZXVkb0lkKTsKLSAgICAgICAgICAgICAgICBpZiAoIXBzMikKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIE5vSW5oZXJpdDsKLSAgICAgICAgICAgICAgICBSZW5kZXJTdHls
ZSogcHMxID0gczEtPmdldENhY2hlZFBzZXVkb1N0eWxlKHBzZXVkb0lkKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXBzMSB8fCAqcHMxICE9ICpwczIpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBOb0luaGVyaXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1
cm4gTm9DaGFuZ2U7Ci19Ci0KLXN0YXRpYyBib29sIHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQo
UmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQotewotICAgIGNv
bnN0IFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLQotICAg
IGNvbnN0IFBzZXVkb1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50U3R5bGUt
PmNhY2hlZFBzZXVkb1N0eWxlcygpOwotICAgIGlmICghcHNldWRvU3R5bGVDYWNoZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc2l6ZV90IGNhY2hlU2l6ZSA9IHBzZXVkb1N0eWxlQ2Fj
aGUtPnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhY2hlU2l6ZTsgKytpKSB7
Ci0gICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3UHNldWRvU3R5bGU7Ci0gICAgICAgIFBz
ZXVkb0lkIHBzZXVkb0lkID0gcHNldWRvU3R5bGVDYWNoZS0+YXQoaSktPnN0eWxlVHlwZSgpOwot
ICAgICAgICBpZiAocHNldWRvSWQgPT0gRklSU1RfTElORSB8fCBwc2V1ZG9JZCA9PSBGSVJTVF9M
SU5FX0lOSEVSSVRFRCkKLSAgICAgICAgICAgIG5ld1BzZXVkb1N0eWxlID0gcmVuZGVyZXItPnVu
Y2FjaGVkRmlyc3RMaW5lU3R5bGUobmV3U3R5bGUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBuZXdQc2V1ZG9TdHlsZSA9IHJlbmRlcmVyLT5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKFBzZXVk
b1N0eWxlUmVxdWVzdChwc2V1ZG9JZCksIG5ld1N0eWxlLCBuZXdTdHlsZSk7Ci0gICAgICAgIGlm
ICghbmV3UHNldWRvU3R5bGUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYg
KCpuZXdQc2V1ZG9TdHlsZSAhPSAqcHNldWRvU3R5bGVDYWNoZS0+YXQoaSkpIHsKLSAgICAgICAg
ICAgIGlmIChwc2V1ZG9JZCA8IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEKQotICAgICAgICAgICAg
ICAgIG5ld1N0eWxlLT5zZXRIYXNQc2V1ZG9TdHlsZShwc2V1ZG9JZCk7Ci0gICAgICAgICAgICBu
ZXdTdHlsZS0+YWRkQ2FjaGVkUHNldWRvU3R5bGUobmV3UHNldWRvU3R5bGUpOwotICAgICAgICAg
ICAgaWYgKHBzZXVkb0lkID09IEZJUlNUX0xJTkUgfHwgcHNldWRvSWQgPT0gRklSU1RfTElORV9J
TkhFUklURUQpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGFuIGFj
dHVhbCBkaWZmIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcmVwYWludCB2cy4gbGF5b3V0Ci0gICAg
ICAgICAgICAgICAgLy8gaXMgbmVlZGVkLCBidXQgZm9yIG5vdyBqdXN0IGFzc3VtZSBhIGxheW91
dCB3aWxsIGJlIHJlcXVpcmVkLiBUaGUgZGlmZiBjb2RlCi0gICAgICAgICAgICAgICAgLy8gaW4g
UmVuZGVyT2JqZWN0OjpzZXRTdHlsZSB3b3VsZCBuZWVkIHRvIGJlIGZhY3RvcmVkIG91dCBzbyB0
aGF0IGl0IGNvdWxkIGJlIHJldXNlZC4KLSAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0TmVl
ZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LXN0YXRpYyBDaGFuZ2UgcmVzb2x2ZUxvY2FsKEVsZW1lbnQqIGN1cnJlbnQsIENoYW5nZSBpbmhl
cml0ZWRDaGFuZ2UpCi17Ci0gICAgQ2hhbmdlIGxvY2FsQ2hhbmdlID0gRGV0YWNoOwotICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGU7Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiBjdXJy
ZW50U3R5bGUgPSBjdXJyZW50LT5yZW5kZXJTdHlsZSgpOwotCi0gICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gY3VycmVudC0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoY3VycmVudFN0eWxlKSB7Ci0gICAg
ICAgIG5ld1N0eWxlID0gY3VycmVudC0+c3R5bGVGb3JSZW5kZXJlcigpOwotICAgICAgICBsb2Nh
bENoYW5nZSA9IGRldGVybWluZUNoYW5nZShjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdl
dCgpLCBkb2N1bWVudC0+c2V0dGluZ3MoKSk7Ci0gICAgfQotICAgIGlmIChsb2NhbENoYW5nZSA9
PSBEZXRhY2gpIHsKLSAgICAgICAgTm9kZTo6QXR0YWNoQ29udGV4dCByZWF0dGFjaENvbnRleHQ7
Ci0gICAgICAgIHJlYXR0YWNoQ29udGV4dC5yZXNvbHZlZFN0eWxlID0gbmV3U3R5bGUuZ2V0KCk7
Ci0gICAgICAgIGN1cnJlbnQtPnJlYXR0YWNoKHJlYXR0YWNoQ29udGV4dCk7Ci0gICAgICAgIHJl
dHVybiBEZXRhY2g7Ci0gICAgfQotCi0gICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBj
dXJyZW50LT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIGlmIChsb2NhbENoYW5nZSAhPSBOb0NoYW5n
ZSB8fCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKHJlbmRlcmVyLCBuZXdTdHlsZS5nZXQoKSkg
fHwgKGluaGVyaXRlZENoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3JjZWRT
dHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpIHx8IGN1cnJlbnQtPnN0eWxlQ2hhbmdlVHlwZSgpID09
IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQotICAgICAgICAgICAgcmVuZGVyZXItPnNldEFuaW1hdGFi
bGVTdHlsZShuZXdTdHlsZS5nZXQoKSk7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbnQtPm5lZWRz
U3R5bGVSZWNhbGMoKSkgewotICAgICAgICAgICAgLy8gQWx0aG91Z2ggbm8gY2hhbmdlIG9jY3Vy
cmVkLCB3ZSB1c2UgdGhlIG5ldyBzdHlsZSBzbyB0aGF0IHRoZSBjb3VzaW4gc3R5bGUgc2hhcmlu
ZyBjb2RlIHdvbid0IGdldAotICAgICAgICAgICAgLy8gZm9vbGVkIGludG8gYmVsaWV2aW5nIHRo
aXMgc3R5bGUgaXMgdGhlIHNhbWUuCi0gICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGVJbnRl
cm5hbChuZXdTdHlsZS5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBJZiAicmVt
IiB1bml0cyBhcmUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQsIGFuZCBpZiB0aGUgZG9j
dW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBjaGFuZ2VzLCB0aGVuIGdvIGFoZWFkIGFuZCBmb3Jj
ZSBmb250IHVwZGF0aW5nCi0gICAgLy8gYWxsIHRoZSB3YXkgZG93biB0aGUgdHJlZS4gVGhpcyBp
cyBzaW1wbGVyIHRoYW4gaGF2aW5nIHRvIG1haW50YWluIGEgY2FjaGUgb2Ygb2JqZWN0cyAoYW5k
IHN1Y2ggZm9udCBzaXplIGNoYW5nZXMgc2hvdWxkIGJlIHJhcmUgYW55d2F5KS4KLSAgICBpZiAo
ZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPnVzZXNSZW1Vbml0cygpICYmIGRvY3Vt
ZW50LT5kb2N1bWVudEVsZW1lbnQoKSA9PSBjdXJyZW50ICYmIGxvY2FsQ2hhbmdlICE9IE5vQ2hh
bmdlICYmIGN1cnJlbnRTdHlsZSAmJiBuZXdTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmZvbnRTaXpl
KCkgIT0gbmV3U3R5bGUtPmZvbnRTaXplKCkpIHsKLSAgICAgICAgLy8gQ2FjaGVkIFJlbmRlclN0
eWxlcyBtYXkgZGVwZW5kIG9uIHRoZSByZSB1bml0cy4KLSAgICAgICAgaWYgKFN0eWxlUmVzb2x2
ZXIqIHN0eWxlUmVzb2x2ZXIgPSBkb2N1bWVudC0+c3R5bGVSZXNvbHZlcklmRXhpc3RzKCkpCi0g
ICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5pbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNo
ZSgpOwotICAgICAgICByZXR1cm4gRm9yY2U7Ci0gICAgfQotICAgIGlmIChpbmhlcml0ZWRDaGFu
Z2UgPT0gRm9yY2UpCi0gICAgICAgIHJldHVybiBGb3JjZTsKLSAgICBpZiAoY3VycmVudC0+c3R5
bGVDaGFuZ2VUeXBlKCkgPj0gRnVsbFN0eWxlQ2hhbmdlKQotICAgICAgICByZXR1cm4gRm9yY2U7
Ci0KLSAgICByZXR1cm4gbG9jYWxDaGFuZ2U7Ci19Ci0KLXZvaWQgcmVzb2x2ZVRyZWUoRWxlbWVu
dCogY3VycmVudCwgQ2hhbmdlIGNoYW5nZSkKLXsKLSAgICBBU1NFUlQoY2hhbmdlICE9IERldGFj
aCk7Ci0KLSAgICBpZiAoY3VycmVudC0+aGFzQ3VzdG9tU3R5bGVDYWxsYmFja3MoKSkgewotICAg
ICAgICBpZiAoIWN1cnJlbnQtPndpbGxSZWNhbGNTdHlsZShjaGFuZ2UpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgaGFzUGFyZW50U3R5bGUgPSBjdXJyZW50LT5wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSAmJiBjdXJyZW50LT5wYXJlbnROb2RlRm9yUmVu
ZGVyaW5nQW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKTsKLSAgICBib29sIGhhc0RpcmVjdEFkamFj
ZW50UnVsZXMgPSBjdXJyZW50LT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVz
KCk7Ci0gICAgYm9vbCBoYXNJbmRpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50LT5jaGlsZHJl
bkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKCk7Ci0KLSAgICBpZiAoY2hhbmdlID4g
Tm9DaGFuZ2UgfHwgY3VycmVudC0+bmVlZHNTdHlsZVJlY2FsYygpKQotICAgICAgICBjdXJyZW50
LT5yZXNldENvbXB1dGVkU3R5bGUoKTsKLQotICAgIGlmIChoYXNQYXJlbnRTdHlsZSAmJiAoY2hh
bmdlID49IEluaGVyaXQgfHwgY3VycmVudC0+bmVlZHNTdHlsZVJlY2FsYygpKSkKLSAgICAgICAg
Y2hhbmdlID0gcmVzb2x2ZUxvY2FsKGN1cnJlbnQsIGNoYW5nZSk7Ci0KLSAgICBpZiAoY2hhbmdl
ICE9IERldGFjaCkgewotICAgICAgICBTdHlsZVJlc29sdmVyUGFyZW50UHVzaGVyIHBhcmVudFB1
c2hlcihjdXJyZW50KTsKLQotICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gY3Vy
cmVudC0+c2hhZG93KCkpIHsKLSAgICAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBz
aGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2Fs
YygpKSB7Ci0gICAgICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKLSAgICAgICAgICAg
ICAgICBzaGFkb3ctPnJlY2FsY1N0eWxlKGNoYW5nZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICBjdXJyZW50LT51cGRhdGVQc2V1ZG9FbGVtZW50KEJFRk9SRSwgY2hhbmdl
KTsKLQotICAgICAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBpcyBnb29kIGVub3VnaCBmb3IgOmhv
dmVyICsgZm9vLCBidXQgaXQgaXMgbm90IGdvb2QgZW5vdWdoIGZvciA6aG92ZXIgKyBmb28gKyBi
YXIuCi0gICAgICAgIC8vIEZvciBub3cgd2Ugd2lsbCBqdXN0IHdvcnJ5IGFib3V0IHRoZSBjb21t
b24gY2FzZSwgc2luY2UgaXQncyBhIGxvdCB0cmlja2llciB0byBnZXQgdGhlIHNlY29uZCBjYXNl
IHJpZ2h0Ci0gICAgICAgIC8vIHdpdGhvdXQgZG9pbmcgd2F5IHRvbyBtdWNoIHJlLXJlc29sdXRp
b24uCi0gICAgICAgIGJvb2wgZm9yY2VDaGVja09mTmV4dEVsZW1lbnRTaWJsaW5nID0gZmFsc2U7
Ci0gICAgICAgIGJvb2wgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBmYWxzZTsKLSAg
ICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGN1cnJlbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChjaGlsZC0+aXNU
ZXh0Tm9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgdG9UZXh0KGNoaWxkKS0+cmVjYWxjVGV4dFN0
eWxlKGNoYW5nZSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAoIWNoaWxkLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBFbGVtZW50KiBjaGlsZEVsZW1lbnQgPSB0b0VsZW1lbnQo
Y2hpbGQpOwotICAgICAgICAgICAgYm9vbCBjaGlsZFJ1bGVzQ2hhbmdlZCA9IGNoaWxkRWxlbWVu
dC0+bmVlZHNTdHlsZVJlY2FsYygpICYmIGNoaWxkRWxlbWVudC0+c3R5bGVDaGFuZ2VUeXBlKCkg
PT0gRnVsbFN0eWxlQ2hhbmdlOwotICAgICAgICAgICAgaWYgKChmb3JjZUNoZWNrT2ZOZXh0RWxl
bWVudFNpYmxpbmcgfHwgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcpKQotICAgICAgICAg
ICAgICAgIGNoaWxkRWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAgICAgICAg
aWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IGNoaWxkRWxlbWVudC0+Y2hpbGROZWVkc1N0eWxlUmVj
YWxjKCkgfHwgY2hpbGRFbGVtZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKLSAgICAgICAgICAg
ICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwotICAgICAgICAgICAgICAgIHJlc29sdmVUcmVlKGNo
aWxkRWxlbWVudCwgY2hhbmdlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvcmNlQ2hl
Y2tPZk5leHRFbGVtZW50U2libGluZyA9IGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0RpcmVjdEFk
amFjZW50UnVsZXM7Ci0gICAgICAgICAgICBmb3JjZUNoZWNrT2ZBbnlFbGVtZW50U2libGluZyA9
IGZvcmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nIHx8IChjaGlsZFJ1bGVzQ2hhbmdlZCAmJiBo
YXNJbmRpcmVjdEFkamFjZW50UnVsZXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgY3VycmVudC0+
dXBkYXRlUHNldWRvRWxlbWVudChBRlRFUiwgY2hhbmdlKTsKLSAgICB9Ci0KLSAgICBjdXJyZW50
LT5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICBjdXJyZW50LT5jbGVhckNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpOwotICAgIAotICAgIGlmIChjdXJyZW50LT5oYXNDdXN0b21TdHlsZUNhbGxi
YWNrcygpKQotICAgICAgICBjdXJyZW50LT5kaWRSZWNhbGNTdHlsZShjaGFuZ2UpOwotfQotCi19
Ci0KLX0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZVRyZWUuaAkocmV2aXNpb24g
MTUzNzgzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZVRyZWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTdHlsZVJlc29sdmVUcmVlX2gKLSNkZWZpbmUgU3R5bGVS
ZXNvbHZlVHJlZV9oCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLWNs
YXNzIFJlbmRlclN0eWxlOwotY2xhc3MgU2V0dGluZ3M7Ci0KLW5hbWVzcGFjZSBTdHlsZSB7Ci0K
LWVudW0gQ2hhbmdlIHsgTm9DaGFuZ2UsIE5vSW5oZXJpdCwgSW5oZXJpdCwgRGV0YWNoLCBGb3Jj
ZSB9OwotCi12b2lkIHJlc29sdmVUcmVlKEVsZW1lbnQqLCBDaGFuZ2UpOwotCi1DaGFuZ2UgZGV0
ZXJtaW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgUmVuZGVyU3R5bGUqLCBTZXR0
aW5ncyopOwotCi19Ci0KLX0KLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVUcmVlLmNwcAkocmV2aXNpb24gMTUzNzgzKQkoZnJvbSBTb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlVHJlZS5jcHA6MTUzNzgzKQorKysgU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAq
ICAgICAgICAgICAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQorICogICAgICAg
ICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogICAgICAgICAg
IChDKSAyMDA3IERhdmlkIFNtaXRoIChjYXRmaXNoLm1hbkBnbWFpbC5jb20pCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAgICAgIChDKSAyMDA3
IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTdHlsZVJlc29sdmVUcmVlLmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRWxlbWVudFJhcmVEYXRhLmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5j
bHVkZSAiTm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
bmFtZXNwYWNlIFN0eWxlIHsKKworQ2hhbmdlIGRldGVybWluZUNoYW5nZShjb25zdCBSZW5kZXJT
dHlsZSogczEsIGNvbnN0IFJlbmRlclN0eWxlKiBzMiwgU2V0dGluZ3MqIHNldHRpbmdzKQorewor
ICAgIGlmICghczEgfHwgIXMyKQorICAgICAgICByZXR1cm4gRGV0YWNoOworICAgIGlmIChzMS0+
ZGlzcGxheSgpICE9IHMyLT5kaXNwbGF5KCkpCisgICAgICAgIHJldHVybiBEZXRhY2g7CisgICAg
aWYgKHMxLT5oYXNQc2V1ZG9TdHlsZShGSVJTVF9MRVRURVIpICE9IHMyLT5oYXNQc2V1ZG9TdHls
ZShGSVJTVF9MRVRURVIpKQorICAgICAgICByZXR1cm4gRGV0YWNoOworICAgIC8vIFdlIGp1c3Qg
ZGV0YWNoIGlmIGEgcmVuZGVyZXIgYWNxdWlyZXMgb3IgbG9zZXMgYSBjb2x1bW4tc3Bhbiwgc2lu
Y2Ugc3Bhbm5pbmcgZWxlbWVudHMKKyAgICAvLyB0eXBpY2FsbHkgd29uJ3QgY29udGFpbiBtdWNo
IGNvbnRlbnQuCisgICAgaWYgKHMxLT5jb2x1bW5TcGFuKCkgIT0gczItPmNvbHVtblNwYW4oKSkK
KyAgICAgICAgcmV0dXJuIERldGFjaDsKKyAgICBpZiAoc2V0dGluZ3MtPnJlZ2lvbkJhc2VkQ29s
dW1uc0VuYWJsZWQoKSkgeworICAgICAgICBib29sIHNwZWNpZmllc0NvbHVtbnMxID0gIXMxLT5o
YXNBdXRvQ29sdW1uQ291bnQoKSB8fCAhczEtPmhhc0F1dG9Db2x1bW5XaWR0aCgpOworICAgICAg
ICBib29sIHNwZWNpZmllc0NvbHVtbnMyID0gIXMyLT5oYXNBdXRvQ29sdW1uQ291bnQoKSB8fCAh
czItPmhhc0F1dG9Db2x1bW5XaWR0aCgpOworICAgICAgICBpZiAoc3BlY2lmaWVzQ29sdW1uczEg
IT0gc3BlY2lmaWVzQ29sdW1uczIpCisgICAgICAgICAgICByZXR1cm4gRGV0YWNoOworICAgIH0K
KyAgICBpZiAoIXMxLT5jb250ZW50RGF0YUVxdWl2YWxlbnQoczIpKQorICAgICAgICByZXR1cm4g
RGV0YWNoOworICAgIC8vIFdoZW4gdGV4dC1jb21iaW5lIHByb3BlcnR5IGhhcyBiZWVuIGNoYW5n
ZWQsIHdlIG5lZWQgdG8gcHJlcGFyZSBhIHNlcGFyYXRlIHJlbmRlcmVyIG9iamVjdC4KKyAgICAv
LyBXaGVuIHRleHQtY29tYmluZSBpcyBvbiwgd2UgdXNlIFJlbmRlckNvbWJpbmVUZXh0LCBvdGhl
cndpc2UgUmVuZGVyVGV4dC4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTUwNjkKKyAgICBpZiAoczEtPmhhc1RleHRDb21iaW5lKCkgIT0gczItPmhhc1Rl
eHRDb21iaW5lKCkpCisgICAgICAgIHJldHVybiBEZXRhY2g7CisgICAgLy8gV2UgbmVlZCB0byBy
ZWF0dGFjaCB0aGUgbm9kZSwgc28gdGhhdCBpdCBpcyBtb3ZlZCB0byB0aGUgY29ycmVjdCBSZW5k
ZXJGbG93VGhyZWFkLgorICAgIGlmIChzMS0+Zmxvd1RocmVhZCgpICE9IHMyLT5mbG93VGhyZWFk
KCkpCisgICAgICAgIHJldHVybiBEZXRhY2g7CisgICAgLy8gV2hlbiB0aGUgcmVnaW9uIHRocmVh
ZCBoYXMgY2hhbmdlZCwgd2UgbmVlZCB0byBwcmVwYXJlIGEgc2VwYXJhdGUgcmVuZGVyIHJlZ2lv
biBvYmplY3QuCisgICAgaWYgKHMxLT5yZWdpb25UaHJlYWQoKSAhPSBzMi0+cmVnaW9uVGhyZWFk
KCkpCisgICAgICAgIHJldHVybiBEZXRhY2g7CisKKyAgICBpZiAoKnMxICE9ICpzMikgeworICAg
ICAgICBpZiAoczEtPmluaGVyaXRlZE5vdEVxdWFsKHMyKSkKKyAgICAgICAgICAgIHJldHVybiBJ
bmhlcml0OworICAgICAgICBpZiAoczEtPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVz
KCkgfHwgczItPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkpCisgICAgICAgICAg
ICByZXR1cm4gSW5oZXJpdDsKKworICAgICAgICByZXR1cm4gTm9Jbmhlcml0OworICAgIH0KKyAg
ICAvLyBJZiB0aGUgcHNldWRvU3R5bGVzIGhhdmUgY2hhbmdlZCwgd2Ugd2FudCBhbnkgU3R5bGVD
aGFuZ2UgdGhhdCBpcyBub3QgTm9DaGFuZ2UKKyAgICAvLyBiZWNhdXNlIHNldFN0eWxlIHdpbGwg
ZG8gdGhlIHJpZ2h0IHRoaW5nIHdpdGggYW55dGhpbmcgZWxzZS4KKyAgICBpZiAoczEtPmhhc0Fu
eVB1YmxpY1BzZXVkb1N0eWxlcygpKSB7CisgICAgICAgIGZvciAoUHNldWRvSWQgcHNldWRvSWQg
PSBGSVJTVF9QVUJMSUNfUFNFVURPSUQ7IHBzZXVkb0lkIDwgRklSU1RfSU5URVJOQUxfUFNFVURP
SUQ7IHBzZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KHBzZXVkb0lkICsgMSkpIHsKKyAg
ICAgICAgICAgIGlmIChzMS0+aGFzUHNldWRvU3R5bGUocHNldWRvSWQpKSB7CisgICAgICAgICAg
ICAgICAgUmVuZGVyU3R5bGUqIHBzMiA9IHMyLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShwc2V1ZG9J
ZCk7CisgICAgICAgICAgICAgICAgaWYgKCFwczIpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBOb0luaGVyaXQ7CisgICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHBzMSA9IHMxLT5nZXRD
YWNoZWRQc2V1ZG9TdHlsZShwc2V1ZG9JZCk7CisgICAgICAgICAgICAgICAgaWYgKCFwczEgfHwg
KnBzMSAhPSAqcHMyKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9Jbmhlcml0OworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIE5vQ2hhbmdlOworfQor
CitzdGF0aWMgYm9vbCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIFJlbmRlclN0eWxlKiBuZXdTdHlsZSkKK3sKKyAgICBjb25zdCBSZW5kZXJTdHlsZSog
Y3VycmVudFN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CisKKyAgICBjb25zdCBQc2V1ZG9TdHls
ZUNhY2hlKiBwc2V1ZG9TdHlsZUNhY2hlID0gY3VycmVudFN0eWxlLT5jYWNoZWRQc2V1ZG9TdHls
ZXMoKTsKKyAgICBpZiAoIXBzZXVkb1N0eWxlQ2FjaGUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHNpemVfdCBjYWNoZVNpemUgPSBwc2V1ZG9TdHlsZUNhY2hlLT5zaXplKCk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWNoZVNpemU7ICsraSkgeworICAgICAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IG5ld1BzZXVkb1N0eWxlOworICAgICAgICBQc2V1ZG9JZCBwc2V1ZG9JZCA9
IHBzZXVkb1N0eWxlQ2FjaGUtPmF0KGkpLT5zdHlsZVR5cGUoKTsKKyAgICAgICAgaWYgKHBzZXVk
b0lkID09IEZJUlNUX0xJTkUgfHwgcHNldWRvSWQgPT0gRklSU1RfTElORV9JTkhFUklURUQpCisg
ICAgICAgICAgICBuZXdQc2V1ZG9TdHlsZSA9IHJlbmRlcmVyLT51bmNhY2hlZEZpcnN0TGluZVN0
eWxlKG5ld1N0eWxlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3UHNldWRvU3R5bGUg
PSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QocHNl
dWRvSWQpLCBuZXdTdHlsZSwgbmV3U3R5bGUpOworICAgICAgICBpZiAoIW5ld1BzZXVkb1N0eWxl
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICgqbmV3UHNldWRvU3R5bGUg
IT0gKnBzZXVkb1N0eWxlQ2FjaGUtPmF0KGkpKSB7CisgICAgICAgICAgICBpZiAocHNldWRvSWQg
PCBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCkKKyAgICAgICAgICAgICAgICBuZXdTdHlsZS0+c2V0
SGFzUHNldWRvU3R5bGUocHNldWRvSWQpOworICAgICAgICAgICAgbmV3U3R5bGUtPmFkZENhY2hl
ZFBzZXVkb1N0eWxlKG5ld1BzZXVkb1N0eWxlKTsKKyAgICAgICAgICAgIGlmIChwc2V1ZG9JZCA9
PSBGSVJTVF9MSU5FIHx8IHBzZXVkb0lkID09IEZJUlNUX0xJTkVfSU5IRVJJVEVEKSB7CisgICAg
ICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkbyBhbiBhY3R1YWwgZGlmZiB0byBkZXRl
cm1pbmUgd2hldGhlciBhIHJlcGFpbnQgdnMuIGxheW91dAorICAgICAgICAgICAgICAgIC8vIGlz
IG5lZWRlZCwgYnV0IGZvciBub3cganVzdCBhc3N1bWUgYSBsYXlvdXQgd2lsbCBiZSByZXF1aXJl
ZC4gVGhlIGRpZmYgY29kZQorICAgICAgICAgICAgICAgIC8vIGluIFJlbmRlck9iamVjdDo6c2V0
U3R5bGUgd291bGQgbmVlZCB0byBiZSBmYWN0b3JlZCBvdXQgc28gdGhhdCBpdCBjb3VsZCBiZSBy
ZXVzZWQuCisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldE5lZWRzTGF5b3V0QW5kUHJlZldp
ZHRoc1JlY2FsYygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgQ2hhbmdlIHJl
c29sdmVMb2NhbChFbGVtZW50KiBjdXJyZW50LCBDaGFuZ2UgaW5oZXJpdGVkQ2hhbmdlKQorewor
ICAgIENoYW5nZSBsb2NhbENoYW5nZSA9IERldGFjaDsKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VycmVudFN0eWxlID0gY3VycmVu
dC0+cmVuZGVyU3R5bGUoKTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGN1cnJlbnQtPmRv
Y3VtZW50KCk7CisgICAgaWYgKGN1cnJlbnRTdHlsZSkgeworICAgICAgICBuZXdTdHlsZSA9IGN1
cnJlbnQtPnN0eWxlRm9yUmVuZGVyZXIoKTsKKyAgICAgICAgbG9jYWxDaGFuZ2UgPSBkZXRlcm1p
bmVDaGFuZ2UoY3VycmVudFN0eWxlLmdldCgpLCBuZXdTdHlsZS5nZXQoKSwgZG9jdW1lbnQtPnNl
dHRpbmdzKCkpOworICAgIH0KKyAgICBpZiAobG9jYWxDaGFuZ2UgPT0gRGV0YWNoKSB7CisgICAg
ICAgIE5vZGU6OkF0dGFjaENvbnRleHQgcmVhdHRhY2hDb250ZXh0OworICAgICAgICByZWF0dGFj
aENvbnRleHQucmVzb2x2ZWRTdHlsZSA9IG5ld1N0eWxlLmdldCgpOworICAgICAgICBjdXJyZW50
LT5yZWF0dGFjaChyZWF0dGFjaENvbnRleHQpOworICAgICAgICByZXR1cm4gRGV0YWNoOworICAg
IH0KKworICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY3VycmVudC0+cmVuZGVyZXIo
KSkgeworICAgICAgICBpZiAobG9jYWxDaGFuZ2UgIT0gTm9DaGFuZ2UgfHwgcHNldWRvU3R5bGVD
YWNoZUlzSW52YWxpZChyZW5kZXJlciwgbmV3U3R5bGUuZ2V0KCkpIHx8IChpbmhlcml0ZWRDaGFu
Z2UgPT0gRm9yY2UgJiYgcmVuZGVyZXItPnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdh
dGlvbigpKSB8fCBjdXJyZW50LT5zdHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNo
YW5nZSkKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUobmV3U3R5bGUu
Z2V0KCkpOworICAgICAgICBlbHNlIGlmIChjdXJyZW50LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsK
KyAgICAgICAgICAgIC8vIEFsdGhvdWdoIG5vIGNoYW5nZSBvY2N1cnJlZCwgd2UgdXNlIHRoZSBu
ZXcgc3R5bGUgc28gdGhhdCB0aGUgY291c2luIHN0eWxlIHNoYXJpbmcgY29kZSB3b24ndCBnZXQK
KyAgICAgICAgICAgIC8vIGZvb2xlZCBpbnRvIGJlbGlldmluZyB0aGlzIHN0eWxlIGlzIHRoZSBz
YW1lLgorICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0
KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSWYgInJlbSIgdW5pdHMgYXJlIHVzZWQg
YW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCBhbmQgaWYgdGhlIGRvY3VtZW50IGVsZW1lbnQncyBm
b250IHNpemUgY2hhbmdlcywgdGhlbiBnbyBhaGVhZCBhbmQgZm9yY2UgZm9udCB1cGRhdGluZwor
ICAgIC8vIGFsbCB0aGUgd2F5IGRvd24gdGhlIHRyZWUuIFRoaXMgaXMgc2ltcGxlciB0aGFuIGhh
dmluZyB0byBtYWludGFpbiBhIGNhY2hlIG9mIG9iamVjdHMgKGFuZCBzdWNoIGZvbnQgc2l6ZSBj
aGFuZ2VzIHNob3VsZCBiZSByYXJlIGFueXdheSkuCisgICAgaWYgKGRvY3VtZW50LT5zdHlsZVNo
ZWV0Q29sbGVjdGlvbigpLT51c2VzUmVtVW5pdHMoKSAmJiBkb2N1bWVudC0+ZG9jdW1lbnRFbGVt
ZW50KCkgPT0gY3VycmVudCAmJiBsb2NhbENoYW5nZSAhPSBOb0NoYW5nZSAmJiBjdXJyZW50U3R5
bGUgJiYgbmV3U3R5bGUgJiYgY3VycmVudFN0eWxlLT5mb250U2l6ZSgpICE9IG5ld1N0eWxlLT5m
b250U2l6ZSgpKSB7CisgICAgICAgIC8vIENhY2hlZCBSZW5kZXJTdHlsZXMgbWF5IGRlcGVuZCBv
biB0aGUgcmUgdW5pdHMuCisgICAgICAgIGlmIChTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVy
ID0gZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXJJZkV4aXN0cygpKQorICAgICAgICAgICAgc3R5bGVS
ZXNvbHZlci0+aW52YWxpZGF0ZU1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUoKTsKKyAgICAgICAgcmV0
dXJuIEZvcmNlOworICAgIH0KKyAgICBpZiAoaW5oZXJpdGVkQ2hhbmdlID09IEZvcmNlKQorICAg
ICAgICByZXR1cm4gRm9yY2U7CisgICAgaWYgKGN1cnJlbnQtPnN0eWxlQ2hhbmdlVHlwZSgpID49
IEZ1bGxTdHlsZUNoYW5nZSkKKyAgICAgICAgcmV0dXJuIEZvcmNlOworCisgICAgcmV0dXJuIGxv
Y2FsQ2hhbmdlOworfQorCit2b2lkIHJlc29sdmVUcmVlKEVsZW1lbnQqIGN1cnJlbnQsIENoYW5n
ZSBjaGFuZ2UpCit7CisgICAgQVNTRVJUKGNoYW5nZSAhPSBEZXRhY2gpOworCisgICAgaWYgKGN1
cnJlbnQtPmhhc0N1c3RvbVN0eWxlQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgaWYgKCFjdXJyZW50
LT53aWxsUmVjYWxjU3R5bGUoY2hhbmdlKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBib29sIGhhc1BhcmVudFN0eWxlID0gY3VycmVudC0+cGFyZW50Tm9kZUZvclJlbmRlcmlu
Z0FuZFN0eWxlKCkgJiYgY3VycmVudC0+cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkt
PnJlbmRlclN0eWxlKCk7CisgICAgYm9vbCBoYXNEaXJlY3RBZGphY2VudFJ1bGVzID0gY3VycmVu
dC0+Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpOworICAgIGJvb2wgaGFz
SW5kaXJlY3RBZGphY2VudFJ1bGVzID0gY3VycmVudC0+Y2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2Fy
ZFBvc2l0aW9uYWxSdWxlcygpOworCisgICAgaWYgKGNoYW5nZSA+IE5vQ2hhbmdlIHx8IGN1cnJl
bnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkKKyAgICAgICAgY3VycmVudC0+cmVzZXRDb21wdXRlZFN0
eWxlKCk7CisKKyAgICBpZiAoaGFzUGFyZW50U3R5bGUgJiYgKGNoYW5nZSA+PSBJbmhlcml0IHx8
IGN1cnJlbnQtPm5lZWRzU3R5bGVSZWNhbGMoKSkpCisgICAgICAgIGNoYW5nZSA9IHJlc29sdmVM
b2NhbChjdXJyZW50LCBjaGFuZ2UpOworCisgICAgaWYgKGNoYW5nZSAhPSBEZXRhY2gpIHsKKyAg
ICAgICAgU3R5bGVSZXNvbHZlclBhcmVudFB1c2hlciBwYXJlbnRQdXNoZXIoY3VycmVudCk7CisK
KyAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGN1cnJlbnQtPnNoYWRvdygpKSB7
CisgICAgICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICAg
ICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CisgICAgICAgICAgICAgICAgc2hhZG93LT5yZWNh
bGNTdHlsZShjaGFuZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY3Vy
cmVudC0+dXBkYXRlUHNldWRvRWxlbWVudChCRUZPUkUsIGNoYW5nZSk7CisKKyAgICAgICAgLy8g
RklYTUU6IFRoaXMgY2hlY2sgaXMgZ29vZCBlbm91Z2ggZm9yIDpob3ZlciArIGZvbywgYnV0IGl0
IGlzIG5vdCBnb29kIGVub3VnaCBmb3IgOmhvdmVyICsgZm9vICsgYmFyLgorICAgICAgICAvLyBG
b3Igbm93IHdlIHdpbGwganVzdCB3b3JyeSBhYm91dCB0aGUgY29tbW9uIGNhc2UsIHNpbmNlIGl0
J3MgYSBsb3QgdHJpY2tpZXIgdG8gZ2V0IHRoZSBzZWNvbmQgY2FzZSByaWdodAorICAgICAgICAv
LyB3aXRob3V0IGRvaW5nIHdheSB0b28gbXVjaCByZS1yZXNvbHV0aW9uLgorICAgICAgICBib29s
IGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2libGluZyA9IGZhbHNlOworICAgICAgICBib29sIGZv
cmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nID0gZmFsc2U7CisgICAgICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKSB7CisgICAgICAgICAgICBpZiAoY2hpbGQtPmlzVGV4dE5vZGUoKSkgeworICAg
ICAgICAgICAgICAgIHRvVGV4dChjaGlsZCktPnJlY2FsY1RleHRTdHlsZShjaGFuZ2UpOworICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFj
aGlsZC0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgRWxlbWVudCogY2hpbGRFbGVtZW50ID0gdG9FbGVtZW50KGNoaWxkKTsKKyAgICAgICAg
ICAgIGJvb2wgY2hpbGRSdWxlc0NoYW5nZWQgPSBjaGlsZEVsZW1lbnQtPm5lZWRzU3R5bGVSZWNh
bGMoKSAmJiBjaGlsZEVsZW1lbnQtPnN0eWxlQ2hhbmdlVHlwZSgpID09IEZ1bGxTdHlsZUNoYW5n
ZTsKKyAgICAgICAgICAgIGlmICgoZm9yY2VDaGVja09mTmV4dEVsZW1lbnRTaWJsaW5nIHx8IGZv
cmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nKSkKKyAgICAgICAgICAgICAgICBjaGlsZEVsZW1l
bnQtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5o
ZXJpdCB8fCBjaGlsZEVsZW1lbnQtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGNoaWxkRWxl
bWVudC0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CisgICAgICAgICAgICAgICAgcGFyZW50UHVzaGVy
LnB1c2goKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlVHJlZShjaGlsZEVsZW1lbnQsIGNoYW5n
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNp
YmxpbmcgPSBjaGlsZFJ1bGVzQ2hhbmdlZCAmJiBoYXNEaXJlY3RBZGphY2VudFJ1bGVzOworICAg
ICAgICAgICAgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBmb3JjZUNoZWNrT2ZBbnlF
bGVtZW50U2libGluZyB8fCAoY2hpbGRSdWxlc0NoYW5nZWQgJiYgaGFzSW5kaXJlY3RBZGphY2Vu
dFJ1bGVzKTsKKyAgICAgICAgfQorCisgICAgICAgIGN1cnJlbnQtPnVwZGF0ZVBzZXVkb0VsZW1l
bnQoQUZURVIsIGNoYW5nZSk7CisgICAgfQorCisgICAgY3VycmVudC0+Y2xlYXJOZWVkc1N0eWxl
UmVjYWxjKCk7CisgICAgY3VycmVudC0+Y2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAg
ICAKKyAgICBpZiAoY3VycmVudC0+aGFzQ3VzdG9tU3R5bGVDYWxsYmFja3MoKSkKKyAgICAgICAg
Y3VycmVudC0+ZGlkUmVjYWxjU3R5bGUoY2hhbmdlKTsKK30KKworfQorCit9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5oCShyZXZpc2lvbiAxNTM3ODMpCShmcm9t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVUcmVlLmg6MTUzNzgzKQorKysgU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFN0eWxlUmVzb2x2ZVRyZWVfaAorI2RlZmluZSBTdHlsZVJlc29sdmVUcmVlX2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgUmVuZGVyU3R5bGU7
CitjbGFzcyBTZXR0aW5nczsKKworbmFtZXNwYWNlIFN0eWxlIHsKKworZW51bSBDaGFuZ2UgeyBO
b0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBEZXRhY2gsIEZvcmNlIH07CisKK3ZvaWQgcmVz
b2x2ZVRyZWUoRWxlbWVudCosIENoYW5nZSk7CisKK0NoYW5nZSBkZXRlcm1pbmVDaGFuZ2UoY29u
c3QgUmVuZGVyU3R5bGUqLCBjb25zdCBSZW5kZXJTdHlsZSosIFNldHRpbmdzKik7CisKK30KKwor
fQorCisjZW5kaWYK
</data>
<flag name="review"
          id="230153"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="230160"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>