<?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>46969</bug_id>
          
          <creation_ts>2010-10-01 02:15:10 -0700</creation_ts>
          <short_desc>Move SVG text related renderers into rendering/svg/</short_desc>
          <delta_ts>2010-10-01 03:20:51 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45532</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>mdelaney7</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288130</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-01 02:15:10 -0700</bug_when>
    <thetext>Move SVG text related renderers into rendering/svg/.
(All other SVG renderers will also be moved there soon).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288141</commentid>
    <comment_count>1</comment_count>
      <attachid>69441</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-01 03:11:27 -0700</bug_when>
    <thetext>Created attachment 69441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288146</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-01 03:20:51 -0700</bug_when>
    <thetext>Thanks Andreas, landed in r68874.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69441</attachid>
            <date>2010-10-01 03:11:27 -0700</date>
            <delta_ts>2010-10-01 03:17:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Moves.diff</filename>
            <type>text/plain</type>
            <size>216358</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODg3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMTAtMTAtMDEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBTVkcgdGV4dCByZWxhdGVkIHJlbmRlcmVycyBpbnRvIHJlbmRlcmluZy9zdmcv
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk2OQor
CisgICAgICAgIERvZXNuJ3QgYWZmZWN0IGFueSBmdW5jdGlvbmFsaXR5LCBqdXN0IG1vdmVzIGZp
bGVzIGFyb3VuZC4KKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHQWxsSW5PbmUuY3BwOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJTVkdJbmxpbmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U1ZHSW5saW5lVGV4dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R0lubGluZVRleHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVFNw
YW4uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdUU3Bhbi5oOiBS
ZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5oOiBSZW1vdmVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclNWR1RleHRQYXRoLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5n
L1NWR0lubGluZUZsb3dCb3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9TVkdJ
bmxpbmVGbG93Qm94Lmg6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1NWR0lubGluZVRl
eHRCb3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94
Lmg6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSb290SW5saW5lQm94Lmg6IFJlbW92ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL1NWR1RleHRRdWVyeS5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1NWR1RleHRRdWVyeS5oOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDogQ29waWVkIGZyb20gcmVuZGVyaW5nL1JlbmRlclNW
R0lubGluZS5jcHAuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDog
Q29waWVkIGZyb20gcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5oLgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHA6IENvcGllZCBmcm9tIHJlbmRlcmluZy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmNwcC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZVRleHQuaDogQ29waWVkIGZyb20gcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQu
aC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcDogQ29waWVkIGZy
b20gcmVuZGVyaW5nL1JlbmRlclNWR1RTcGFuLmNwcC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RTcGFuLmg6IENvcGllZCBmcm9tIHJlbmRlcmluZy9SZW5kZXJTVkdUU3Bhbi5o
LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6IENvcGllZCBmcm9t
IHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RleHQuaDogQ29waWVkIGZyb20gcmVuZGVyaW5nL1JlbmRlclNWR1RleHQuaC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcDogQ29waWVkIGZyb20g
cmVuZGVyaW5nL1JlbmRlclNWR1RleHRQYXRoLmNwcC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHRQYXRoLmg6IENvcGllZCBmcm9tIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0
UGF0aC5oLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHA6IENv
cGllZCBmcm9tIHJlbmRlcmluZy9TVkdJbmxpbmVGbG93Qm94LmNwcC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guaDogQ29waWVkIGZyb20gcmVuZGVyaW5nL1NWR0lu
bGluZUZsb3dCb3guaC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3gu
Y3BwOiBDb3BpZWQgZnJvbSByZW5kZXJpbmcvU1ZHSW5saW5lVGV4dEJveC5jcHAuCisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94Lmg6IENvcGllZCBmcm9tIHJlbmRlcmlu
Zy9TVkdJbmxpbmVUZXh0Qm94LmguCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5s
aW5lQm94LmNwcDogQ29waWVkIGZyb20gcmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guY3BwLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5oOiBDb3BpZWQgZnJvbSBy
ZW5kZXJpbmcvU1ZHUm9vdElubGluZUJveC5oLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
VGV4dFF1ZXJ5LmNwcDogQ29waWVkIGZyb20gcmVuZGVyaW5nL1NWR1RleHRRdWVyeS5jcHAuCisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuaDogQ29waWVkIGZyb20gcmVuZGVy
aW5nL1NWR1RleHRRdWVyeS5oLgorCiAyMDEwLTEwLTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxu
emltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4K
SW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5tawo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0FuZHJvaWQu
bWsJKHJldmlzaW9uIDY4ODczKQorKysgV2ViQ29yZS9BbmRyb2lkLm1rCSh3b3JraW5nIGNvcHkp
CkBAIC02OTAsOCArNjkwLDYgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVT
KSBcCiAJcmVuZGVyaW5nL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAgXAogCXJlbmRlcmluZy9S
ZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2Uu
Y3BwIFwKLQlyZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBcCi0JcmVuZGVyaW5nL1JlbmRl
clNWR0lubGluZVRleHQuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3Bw
IFwKIAlyZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBcCkBAIC03MDcsMTUgKzcwNSwyMSBAQCBMT0NBTF9TUkNf
RklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlyZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VTb2xpZENvbG9yLmNwcCBcCiAJcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwIFwKIAlyZW5k
ZXJpbmcvUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXIuY3BwIFwKLQlyZW5kZXJpbmcv
UmVuZGVyU1ZHVFNwYW4uY3BwIFwKLQlyZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAgXAotCXJl
bmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmNwcCBcCiAJcmVuZGVyaW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyLmNwcCBcCisJcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwIFwKKwlyZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwIFwKKwlyZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RTcGFuLmNwcCBcCisJcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcCBcCisJcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAgXAorCXJlbmRlcmluZy9zdmcvU1ZHSW5s
aW5lRmxvd0JveC5jcHAgXAorCXJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgXAor
CXJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAgXAogCXJlbmRlcmluZy9zdmcvU1ZH
VGV4dENodW5rLmNwcCBcCiAJcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlcy5j
cHAgXAogCXJlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEJ1aWxkZXIuY3BwIFwKLQlyZW5kZXJp
bmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcAorCXJlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3Mu
Y3BwIFwKKwlyZW5kZXJpbmcvc3ZnL1NWR1RleHRRdWVyeS5jcHAKIGVuZGlmCiAKIExPQ0FMX1NS
Q19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXApAQCAtNzQ2LDE5ICs3NTAsMTUgQEAgTE9D
QUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1NWR0NoYXJh
Y3RlckRhdGEuY3BwIFwKIAlyZW5kZXJpbmcvU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mby5jcHAgXAog
CXJlbmRlcmluZy9TVkdJbWFnZUJ1ZmZlclRvb2xzLmNwcCBcCi0JcmVuZGVyaW5nL1NWR0lubGlu
ZUZsb3dCb3guY3BwIFwKLQlyZW5kZXJpbmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgXAogCXJlbmRl
cmluZy9TVkdNYXJrZXJMYXlvdXRJbmZvLmNwcCBcCiAJcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBv
cnQuY3BwIFwKIAlyZW5kZXJpbmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAgXAogCXJlbmRlcmlu
Zy9TVkdSZXNvdXJjZXMuY3BwIFwKIAlyZW5kZXJpbmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIFwK
IAlyZW5kZXJpbmcvU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIFwKLQlyZW5kZXJpbmcvU1ZH
Um9vdElubGluZUJveC5jcHAgXAogCXJlbmRlcmluZy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuY3Bw
IFwKIAlyZW5kZXJpbmcvU1ZHVGV4dENodW5rTGF5b3V0SW5mby5jcHAgXAotCXJlbmRlcmluZy9T
VkdUZXh0TGF5b3V0VXRpbGl0aWVzLmNwcCBcCi0JcmVuZGVyaW5nL1NWR1RleHRRdWVyeS5jcHAK
KwlyZW5kZXJpbmcvU1ZHVGV4dExheW91dFV0aWxpdGllcy5jcHAKIGVuZGlmCiAKIExPQ0FMX1NS
Q19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXApJbmRleDogV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA2ODg3
MykKKysrIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2NjYsOCAr
MTY2Niw2IEBAIElGIChFTkFCTEVfU1ZHKQogICAgICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHR3Jh
ZGllbnRTdG9wLmNwcAogICAgICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVy
LmNwcAogICAgICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCi0gICAgICAgIHJlbmRl
cmluZy9SZW5kZXJTVkdJbmxpbmUuY3BwCi0gICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdJbmxp
bmVUZXh0LmNwcAogICAgICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCiAg
ICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAKICAgICAgICAgcmVuZGVyaW5n
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKQEAgLTE2ODMsMzMgKzE2ODEsMzUgQEAgSUYg
KEVOQUJMRV9TVkcpCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29s
b3IuY3BwCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAogICAgICAgICByZW5k
ZXJpbmcvUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXIuY3BwCi0gICAgICAgIHJlbmRl
cmluZy9SZW5kZXJTVkdUU3Bhbi5jcHAKLSAgICAgICAgcmVuZGVyaW5nL1JlbmRlclNWR1RleHQu
Y3BwCi0gICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAKICAgICAgICAgcmVu
ZGVyaW5nL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCiAgICAgICAgIHJlbmRl
cmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAKICAgICAgICAgcmVuZGVyaW5nL1NW
R0NoYXJhY3RlckRhdGEuY3BwCiAgICAgICAgIHJlbmRlcmluZy9TVkdDaGFyYWN0ZXJMYXlvdXRJ
bmZvLmNwcAogICAgICAgICByZW5kZXJpbmcvU1ZHSW1hZ2VCdWZmZXJUb29scy5jcHAKLSAgICAg
ICAgcmVuZGVyaW5nL1NWR0lubGluZUZsb3dCb3guY3BwCi0gICAgICAgIHJlbmRlcmluZy9TVkdJ
bmxpbmVUZXh0Qm94LmNwcAogICAgICAgICByZW5kZXJpbmcvU1ZHTWFya2VyTGF5b3V0SW5mby5j
cHAKICAgICAgICAgcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuY3BwCiAgICAgICAgIHJlbmRl
cmluZy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAogICAgICAgICByZW5kZXJpbmcvU1ZHUmVzb3Vy
Y2VzLmNwcAogICAgICAgICByZW5kZXJpbmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCiAgICAgICAg
IHJlbmRlcmluZy9TVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5jcHAKLSAgICAgICAgcmVuZGVyaW5n
L1NWR1Jvb3RJbmxpbmVCb3guY3BwCiAgICAgICAgIHJlbmRlcmluZy9TVkdTaGFkb3dUcmVlRWxl
bWVudHMuY3BwCiAgICAgICAgIHJlbmRlcmluZy9TVkdUZXh0Q2h1bmtMYXlvdXRJbmZvLmNwcAog
ICAgICAgICByZW5kZXJpbmcvU1ZHVGV4dExheW91dFV0aWxpdGllcy5jcHAKLSAgICAgICAgcmVu
ZGVyaW5nL1NWR1RleHRRdWVyeS5jcHAKICAgICAgICAgcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlLmNwcAogICAgICAgICByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNw
cAorICAgICAgICByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKKyAgICAgICAgcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAorICAgICAgICByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RTcGFuLmNwcAorICAgICAgICByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwCisgICAgICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwCisgICAgICAg
IHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAKKyAgICAgICAgcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAorICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxp
bmVCb3guY3BwCiAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rLmNwcAogICAgICAg
ICByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzLmNwcAogICAgICAgICByZW5k
ZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRCdWlsZGVyLmNwcAogICAgICAgICByZW5kZXJpbmcvc3Zn
L1NWR1RleHRNZXRyaWNzLmNwcAorICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR1RleHRRdWVyeS5j
cHAKICAgICAgICAgc3ZnL0NvbG9yRGlzdGFuY2UuY3BwCiAgICAgICAgIHN2Zy9TVkdBRWxlbWVu
dC5jcHAKICAgICAgICAgc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKSW5kZXg6IFdlYkNvcmUv
R05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2
aXNpb24gNjg4NzMpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjQxLDEwICsyNjQxLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHSW1hZ2UuY3BwIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbWFnZS5oIFwK
LQlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuY3BwIFwKLQlXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdJbmxpbmUuaCBcCi0JV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5jcHAgXAotCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuaCBc
CiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIFwKIAlXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwIFwKQEAgLTI2NzUsMTQgKzI2NzEsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuaCBcCiAJ
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXIuY3BwIFwK
IAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdTaGFkb3dUcmVlUm9vdENvbnRhaW5lci5oIFwK
LQlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcCBcCi0JV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHVGV4dC5oIFwKLQlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0
aC5jcHAgXAotCVdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHRQYXRoLmggXAogCVdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIFwKIAlXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggXAotCVdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNWR1RTcGFuLmNwcCBcCi0JV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHVFNwYW4uaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuY3BwIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ci5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIFwKQEAgLTI3ODgs
MTAgKzI3NzgsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcmVuZGVyaW5nL1NW
R0NoYXJhY3RlckxheW91dEluZm8uaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW1hZ2VCdWZm
ZXJUb29scy5jcHAgXAogCVdlYkNvcmUvcmVuZGVyaW5nL1NWR0ltYWdlQnVmZmVyVG9vbHMuaCBc
Ci0JV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5lRmxvd0JveC5jcHAgXAotCVdlYkNvcmUvcmVu
ZGVyaW5nL1NWR0lubGluZUZsb3dCb3guaCBcCi0JV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5l
VGV4dEJveC5jcHAgXAotCVdlYkNvcmUvcmVuZGVyaW5nL1NWR0lubGluZVRleHRCb3guaCBcCiAJ
V2ViQ29yZS9yZW5kZXJpbmcvU1ZHTWFya2VyRGF0YS5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9T
VkdNYXJrZXJMYXlvdXRJbmZvLmNwcCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvU1ZHTWFya2VyTGF5
b3V0SW5mby5oIFwKQEAgLTI4MDUsMTAgKzI3OTEsMjQgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlXZWJDb3JlL3JlbmRlcmluZy9TVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5jcHAgXAogCVdlYkNv
cmUvcmVuZGVyaW5nL1NWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmggXAogCVdlYkNvcmUvcmVuZGVy
aW5nL1NWR1Jlc291cmNlcy5oIFwKLQlXZWJDb3JlL3JlbmRlcmluZy9TVkdSb290SW5saW5lQm94
LmNwcCBcCi0JV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUm9vdElubGluZUJveC5oIFwKIAlXZWJDb3Jl
L3JlbmRlcmluZy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuY3BwIFwKIAlXZWJDb3JlL3JlbmRlcmlu
Zy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuaCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0lubGluZS5jcHAgXAorCVdlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwIFwKKwlX
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIFwKKwlXZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uY3BwIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVFNwYW4uaCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIFwKKwlXZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwIFwKKwlXZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lu
bGluZUZsb3dCb3guY3BwIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0Jv
eC5oIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgXAorCVdl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmggXAorCVdlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcCBcCisJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1Jvb3RJbmxpbmVCb3guaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVuay5j
cHAgXAogCVdlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmsuaCBcCiAJV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1RleHRGcmFnbWVudC5oIFwKQEAgLTI4MTgsMTIgKzI4MTgsMTIgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91
dEJ1aWxkZXIuaCBcCiAJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcCBc
CiAJV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmggXAorCVdlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3BwIFwKKwlXZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dFF1ZXJ5LmggXAogCVdlYkNvcmUvcmVuZGVyaW5nL1NWR1RleHRDaHVua0xheW91dEluZm8u
Y3BwIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9TVkdUZXh0Q2h1bmtMYXlvdXRJbmZvLmggXAogCVdl
YkNvcmUvcmVuZGVyaW5nL1NWR1RleHRMYXlvdXRVdGlsaXRpZXMuY3BwIFwKIAlXZWJDb3JlL3Jl
bmRlcmluZy9TVkdUZXh0TGF5b3V0VXRpbGl0aWVzLmggXAotCVdlYkNvcmUvcmVuZGVyaW5nL1NW
R1RleHRRdWVyeS5jcHAgXAotCVdlYkNvcmUvcmVuZGVyaW5nL1NWR1RleHRRdWVyeS5oIFwKIAlX
ZWJDb3JlL3JlbmRlcmluZy9UYWJsZUxheW91dC5oIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwIFwKIAlXZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJv
bElubmVyRWxlbWVudHMuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjg4NzMpCisrKyBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzQzNSw2ICszNDM1LDIyIEBACiAgICAgICAg
ICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5oJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL3N0eWxlL1N0eWxlVmlzdWFsRGF0YS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
VGV4dC5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcCcs
CisgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5oJywKKyAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwJywKKyAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUZXh0UGF0aC5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dFBhdGguaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93
Qm94LmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94Lmgn
LAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAnLAorICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5oJywKKyAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwJywKKyAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2
Zy9TVkdUZXh0Q2h1bmsuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1RleHRD
aHVuay5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1RleHRGcmFnbWVudC5oJywK
QEAgLTM0NDQsNiArMzQ2MCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdUZXh0
TGF5b3V0QnVpbGRlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRy
aWNzLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5oJywK
KyAgICAgICAgICAgICdyZW5kZXJpbmcvc3ZnL1NWR1RleHRRdWVyeS5jcHAnLAorICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdmcvU1ZHVGV4dFF1ZXJ5LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9BdXRvVGFibGVMYXlvdXQuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvQXV0b1RhYmxl
TGF5b3V0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9CaWRpUnVuLmNwcCcsCkBAIC0zNTgw
LDEwICszNTk4LDYgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdJbWFnZS5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdJbWFnZS5oJywKLSAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmNwcCcsCi0gICAgICAgICAgICAncmVuZGVyaW5nL1Jl
bmRlclNWR0lubGluZS5oJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5l
VGV4dC5jcHAnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0Lmgn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwJywKQEAgLTM2MTQsMTIgKzM2MjgsNiBA
QAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9SZW5kZXJTVkdTaGFkb3dUcmVlUm9vdENvbnRhaW5lci5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTVkdTaGFkb3dUcmVlUm9vdENvbnRhaW5lci5oJywKLSAg
ICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyU1ZHVFNwYW4uY3BwJywKLSAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyU1ZHVFNwYW4uaCcsCi0gICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRl
clNWR1RleHQuY3BwJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5oJywK
LSAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwJywKLSAgICAgICAg
ICAgICdyZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBhdGguaCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwJywKQEAgLTM2ODksMTIg
KzM2OTcsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdDaGFyYWN0ZXJEYXRhLmgnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdDaGFyYWN0ZXJMYXlvdXRJbmZvLmNwcCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL1NWR0NoYXJhY3RlckxheW91dEluZm8uaCcsCi0gICAgICAgICAg
ICAncmVuZGVyaW5nL1NWR0lubGluZUZsb3dCb3guY3BwJywKLSAgICAgICAgICAgICdyZW5kZXJp
bmcvU1ZHSW5saW5lRmxvd0JveC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvU1ZHSW1hZ2VC
dWZmZXJUb29scy5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdJbWFnZUJ1ZmZlclRv
b2xzLmgnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmNwcCcsCi0g
ICAgICAgICAgICAncmVuZGVyaW5nL1NWR0lubGluZVRleHRCb3guaCcsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL1NWR01hcmtlckRhdGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1NWR01h
cmtlckxheW91dEluZm8uY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvU1ZHTWFya2VyTGF5
b3V0SW5mby5oJywKQEAgLTM3MDgsMTYgKzM3MTIsMTIgQEAKICAgICAgICAgICAgICdyZW5kZXJp
bmcvU1ZHUmVzb3VyY2VzQ2FjaGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1NWR1Jlc291
cmNlc0N5Y2xlU29sdmVyLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1NWR1Jlc291cmNl
c0N5Y2xlU29sdmVyLmgnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdSb290SW5saW5lQm94
LmNwcCcsCi0gICAgICAgICAgICAncmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5jcHAnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuaCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL1NWR1RleHRDaHVua0xheW91dEluZm8uY3BwJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvU1ZHVGV4dENodW5rTGF5b3V0SW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvU1ZH
VGV4dExheW91dFV0aWxpdGllcy5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdUZXh0
TGF5b3V0VXRpbGl0aWVzLmgnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9TVkdUZXh0UXVlcnku
Y3BwJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5LmgnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9UYWJsZUxheW91dC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5oJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNjg4NzMpCisrKyBXZWJDb3Jl
L1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMjI4LDggKzIyMjgsNiBAQCBIRUFERVJT
ICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmggXAogICAgIHJlbmRl
cmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNW
R0ltYWdlLmggXAotICAgIHJlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuaCBcCi0gICAgcmVuZGVy
aW5nL1JlbmRlclNWR0lubGluZVRleHQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNWR01vZGVs
T2JqZWN0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZS5oIFwKICAgICByZW5k
ZXJpbmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmggXApAQCAtMjI0NSwxMCArMjI0Myw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3Iu
aCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clNWR1NoYWRvd1RyZWVSb290Q29udGFpbmVyLmggXAotICAgIHJlbmRlcmluZy9SZW5kZXJTVkdU
ZXh0LmggXAotICAgIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5oIFwKICAgICByZW5kZXJp
bmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIFwKLSAgICByZW5kZXJpbmcvUmVu
ZGVyU1ZHVFNwYW4uaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ29sLmggXApAQCAtMjI5NCwxNiArMjI4OSwyMyBAQCBIRUFERVJTICs9IFwKICAg
ICByZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHls
ZS9TVkdSZW5kZXJTdHlsZURlZnMuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0
eWxlLmggXAorICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmggXAorICAgIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIFwKKyAgICByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RTcGFuLmggXAorICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIFwKKyAgICBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmggXAorICAgIHJlbmRlcmluZy9zdmcvU1ZH
SW5saW5lRmxvd0JveC5oIFwKKyAgICByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guaCBc
CisgICAgcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmggXAogICAgIHJlbmRlcmluZy9z
dmcvU1ZHVGV4dENodW5rLmggXAogICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dEZyYWdtZW50Lmgg
XAogICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMuaCBcCiAgICAgcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QnVpbGRlci5oIFwKICAgICByZW5kZXJpbmcvc3ZnL1NW
R1RleHRNZXRyaWNzLmggXAorICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFF1ZXJ5LmggXAogICAg
IHJlbmRlcmluZy9TVkdDaGFyYWN0ZXJEYXRhLmggXAogICAgIHJlbmRlcmluZy9TVkdDaGFyYWN0
ZXJMYXlvdXRJbmZvLmggXAogICAgIHJlbmRlcmluZy9TVkdJbWFnZUJ1ZmZlclRvb2xzLmggXAot
ICAgIHJlbmRlcmluZy9TVkdJbmxpbmVGbG93Qm94LmggXAotICAgIHJlbmRlcmluZy9TVkdJbmxp
bmVUZXh0Qm94LmggXAogICAgIHJlbmRlcmluZy9TVkdNYXJrZXJEYXRhLmggXAogICAgIHJlbmRl
cmluZy9TVkdNYXJrZXJMYXlvdXRJbmZvLmggXAogICAgIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBw
b3J0LmggXApAQCAtMjMxMSwxMSArMjMxMyw5IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmlu
Zy9TVkdSZXNvdXJjZXMuaCBcCiAgICAgcmVuZGVyaW5nL1NWR1Jlc291cmNlc0NhY2hlLmggXAog
ICAgIHJlbmRlcmluZy9TVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5oIFwKLSAgICByZW5kZXJpbmcv
U1ZHUm9vdElubGluZUJveC5oIFwKICAgICByZW5kZXJpbmcvU1ZHU2hhZG93VHJlZUVsZW1lbnRz
LmggXAogICAgIHJlbmRlcmluZy9TVkdUZXh0Q2h1bmtMYXlvdXRJbmZvLmggXAogICAgIHJlbmRl
cmluZy9TVkdUZXh0TGF5b3V0VXRpbGl0aWVzLmggXAotICAgIHJlbmRlcmluZy9TVkdUZXh0UXVl
cnkuaCBcCiAgICAgcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIFwKICAgICBy
ZW5kZXJpbmcvVHJhbnNmb3JtU3RhdGUuaCBcCiAgICAgc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNv
bnRhaW5lci5oIFwKQEAgLTMyNzgsMTAgKzMyNzgsMTkgQEAgY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1NWRz0xKSB7CiAgICAgICAgIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBcCiAgICAg
ICAgIHJlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZS5jcHAgXAogICAgICAgICByZW5kZXJp
bmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5jcHAgXAorICAgICAgICByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcCBc
CisgICAgICAgIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAgXAorICAgICAgICByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9zdmcv
U1ZHSW5saW5lRmxvd0JveC5jcHAgXAorICAgICAgICByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwIFwKKyAgICAgICAgcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcCBc
CiAgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rLmNwcCBcCiAgICAgICAgIHJlbmRl
cmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMuY3BwIFwKICAgICAgICAgcmVuZGVyaW5n
L3N2Zy9TVkdUZXh0TGF5b3V0QnVpbGRlci5jcHAgXAogICAgICAgICByZW5kZXJpbmcvc3ZnL1NW
R1RleHRNZXRyaWNzLmNwcCBcCisgICAgICAgIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFF1ZXJ5LmNw
cCBcCiAgICAgICAgIHJlbmRlcmluZy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMuY3BwIFwKICAgICAg
ICAgc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgXAogICAgICAgICBzdmcvU1ZHSW1hZ2VM
b2FkZXIuY3BwIFwKQEAgLTM0NDIsOCArMzQ1MSw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9TVkc9MSkgewogICAgICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcCBc
CiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwIFwKICAgICAg
ICAgcmVuZGVyaW5nL1JlbmRlclNWR0ltYWdlLmNwcCBcCi0gICAgICAgIHJlbmRlcmluZy9SZW5k
ZXJTVkdJbmxpbmUuY3BwIFwKLSAgICAgICAgcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQu
Y3BwIFwKICAgICAgICAgcmVuZGVyaW5nL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBcCiAgICAg
ICAgIHJlbmRlcmluZy9SZW5kZXJTVkdSZXNvdXJjZS5jcHAgXAogICAgICAgICByZW5kZXJpbmcv
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBcCkBAIC0zNDU5LDI2ICszNDY2LDE5IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgewogICAgICAgICByZW5kZXJpbmcvUmVuZGVy
U1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdS
b290LmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdTaGFkb3dUcmVlUm9vdENvbnRh
aW5lci5jcHAgXAotICAgICAgICByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dC5jcHAgXAotICAgICAg
ICByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwIFwKICAgICAgICAgcmVuZGVyaW5nL1Jl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIFwKLSAgICAgICAgcmVuZGVyaW5nL1Jl
bmRlclNWR1RTcGFuLmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lci5jcHAgXAogICAgICAgICByZW5kZXJpbmcvU1ZHQ2hhcmFjdGVyRGF0YS5jcHAgXAog
ICAgICAgICByZW5kZXJpbmcvU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mby5jcHAgXAogICAgICAgICBy
ZW5kZXJpbmcvU1ZHSW1hZ2VCdWZmZXJUb29scy5jcHAgXAotICAgICAgICByZW5kZXJpbmcvU1ZH
SW5saW5lRmxvd0JveC5jcHAgXAotICAgICAgICByZW5kZXJpbmcvU1ZHSW5saW5lVGV4dEJveC5j
cHAgXAogICAgICAgICByZW5kZXJpbmcvU1ZHTWFya2VyTGF5b3V0SW5mby5jcHAgXAogICAgICAg
ICByZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAgXAogICAgICAgICByZW5kZXJpbmcvU1ZH
UmVzb3VyY2VzLmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9TVkdSZXNvdXJjZXNDYWNoZS5jcHAg
XAogICAgICAgICByZW5kZXJpbmcvU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIFwKLSAgICAg
ICAgcmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guY3BwIFwKICAgICAgICAgcmVuZGVyaW5nL1NW
R1NoYWRvd1RyZWVFbGVtZW50cy5jcHAgXAogICAgICAgICByZW5kZXJpbmcvU1ZHVGV4dENodW5r
TGF5b3V0SW5mby5jcHAgXAotICAgICAgICByZW5kZXJpbmcvU1ZHVGV4dExheW91dFV0aWxpdGll
cy5jcHAgXAotICAgICAgICByZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5LmNwcAorICAgICAgICByZW5k
ZXJpbmcvU1ZHVGV4dExheW91dFV0aWxpdGllcy5jcHAKIH0KIAogY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVI9MSkgewpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2ODg3MykKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTMwOTQ1LDExOCArMzA5NDUsNiBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcUmVuZGVyU1ZHSW5saW5lLmNwcCINCi0JCQkJPg0KLQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIi
DQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJ
CQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJ
CT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+
DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclNWR0lubGluZS5oIg0KLQkJCQk+DQot
CQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJl
bmRlclNWR0lubGluZVRleHQuY3BwIg0KLQkJCQk+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
LQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0J
CQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1
cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdp
bjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9v
bA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJ
CQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyU1ZHSW5saW5lVGV4dC5oIg0KLQkJCQk+DQotCQkJ
PC9GaWxlPg0KLQkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRl
clNWR01vZGVsT2JqZWN0LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBA
IC0zMTg5Nyw3ICszMTc4NSw3IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJTVkdUZXh0LmNwcCINCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5j
cHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiINCkBAIC0zMTk0OSwxMSArMzE4MzcsMTEgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xSZW5kZXJTVkdUZXh0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJTVkdUZXh0UGF0aC5j
cHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIg0KQEAgLTMyMDA1LDIyICszMTg5Myw5OCBAQAogCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXFJlbmRlclNWR1RleHRQYXRoLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXFJlbmRlclRhYmxlLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUYWJsZS5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xSZW5kZXJUYWJsZUNlbGwuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRhYmxlQ2VsbC5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXFJlbmRlclRhYmxlQ29sLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUYWJsZUNvbC5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXFJlbmRlclRhYmxlUm93LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUYWJsZVJvdy5oIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVy
aW5nXFJlbmRlclRhYmxlU2VjdGlvbi5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGFibGVTZWN0aW9uLmgi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcUmVuZGVyVGV4dC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGV4dC5oIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJl
bmRlclRleHRDb250cm9sLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUZXh0Q29udHJvbC5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5n
XFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGV4dEZy
YWdtZW50LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUZXh0RnJhZ21lbnQuaCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJU
aGVtZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGhlbWUuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUaGVtZVNhZmFy
aS5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJ
PFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQogCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQpAQCAtMzIwMjgsMTkg
KzMxOTkyLDIzIEBACiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KIAkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQogCQkJCQk+DQogCQkJCQk8VG9vbA0KIAkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQogCQkJCQkvPg0KIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUaGVtZVNhZmFyaS5o
Ig0KKwkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm98V2luMzIiDQogCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJ
CTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlOYW1lPSJWQ0N1
c3RvbUJ1aWxkVG9vbCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTMyMDQ4LDIyMyArMzIwMTYsMTI5IEBACiAJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KIAkJCQkJPg0KIAkJCQkJPFRvb2wNCi0JCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9v
bCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclNWR1RyYW5zZm9y
bWFibGVDb250YWluZXIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVy
VGhlbWVXaW4uY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclNWR1RTcGFuLmNwcCINCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGhlbWVXaW4uaCINCiAJCQkJPg0KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQogCQkJCQk+DQogCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQogCQkJCQkvPg0KIAkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJ
CT4NCiAJCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlO
YW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8
V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxU
b29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlOYW1lPSJWQ0N1c3Rv
bUJ1aWxkVG9vbCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCiAJ
CQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KIAkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KIAkJCQkJPg0KIAkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KIAkJCQkJLz4NCiAJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJ
CT4NCiAJCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQlO
YW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVy
aW5nXFJlbmRlclNWR1RTcGFuLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJl
bmRlclRyZWVBc1RleHQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNw
cCINCi0JCQkJPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9v
bA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJ
CTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0i
RGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0J
CQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJ
CS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
LQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5n
XFJlbmRlclRhYmxlLmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUYWJsZS5oIg0KLQkJCQk+DQotCQkJPC9G
aWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRh
YmxlQ2VsbC5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGFibGVDZWxsLmgiDQotCQkJCT4NCi0JCQk8L0Zp
bGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGFi
bGVDb2wuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRhYmxlQ29sLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+
DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGFibGVS
b3cuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRhYmxlUm93LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXFJlbmRlclRyZWVBc1RleHQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUYWJsZVNlY3Rpb24u
Y3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJWaWRlby5jcHAiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUmVuZGVyVGFibGVTZWN0aW9uLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVy
aW5nXFJlbmRlclZpZGVvLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGV4dC5jcHAiDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclZpZXcuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
IAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRleHQuaCIN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVmlldy5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJl
bmRlclRleHRDb250cm9sLmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyV2lkZ2V0LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUZXh0Q29udHJvbC5oIg0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJXaWRnZXQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUZXh0Q29u
dHJvbE11bHRpTGluZS5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRl
cldvcmRCcmVhay5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCINCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyV29yZEJyZWFrLmgiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcUm9vdElubGluZUJveC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJvb3RJbmxpbmVCb3gu
aCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xSZW5kZXJUZXh0RnJhZ21lbnQuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xTY3JvbGxCZWhhdmlvci5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGV4dEZyYWdtZW50
LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNjcm9sbEJlaGF2aW9yLmgiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUmVuZGVyVGhlbWUuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xT
aGFkb3dFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUaGVtZS5oIg0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHJlbmRlcmluZ1xTaGFkb3dFbGVtZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVGhlbWVTYWZh
cmkuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdDaGFyYWN0ZXJEYXRh
LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVn
X0NhaXJvfFdpbjMyIg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQogCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQpAQCAtMzIyNzIsMjMgKzMyMTQ2
LDI3IEBACiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQogCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQogCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPC9GaWxlPg0KLQkJCTxG
aWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRoZW1lU2FmYXJpLmgi
DQotCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b3xXaW4zMiINCiAJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KIAkJCQkJPg0KIAkJCQkJ
PFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KIAkJCQkJLz4NCiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMzIyOTYsMTI2ICszMjE3NCw4NCBAQAogCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQotCQkJCQkJTmFtZT0i
VkNDdXN0b21CdWlsZFRvb2wiDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQogCQkJCQkvPg0KIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJUaGVtZVdpbi5jcHAi
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR0NoYXJhY3RlckRhdGEuaCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRl
cmluZ1xSZW5kZXJUaGVtZVdpbi5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xT
VkdDaGFyYWN0ZXJMYXlvdXRJbmZvLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQogCQkJCQk+DQogCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29s
Ig0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCQkvPg0KIAkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJ
CTxUb29sDQotCQkJCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQotCQkJ
CQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDdXN0
b21CdWlsZFRvb2wiDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCiAJCQkJCS8+DQog
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KIAkJCQkJPg0KIAkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIN
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KIAkJCQkJLz4NCiAJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCiAJCQkJCT4NCiAJCQkJ
CTxUb29sDQotCQkJCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRl
clRyZWVBc1RleHQuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclRyZWVBc1RleHQuaCINCi0JCQkJPg0KLQkJ
CTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5k
ZXJWaWRlby5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyVmlkZW8uaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4N
Ci0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJWaWV3LmNw
cCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xSZW5kZXJWaWV3LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUN
Ci0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyV2lkZ2V0LmNwcCINCi0JCQkJ
Pg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xSZW5kZXJXaWRnZXQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJXb3JkQnJlYWsuY3BwIg0KLQkJCQk+DQot
CQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJl
bmRlcldvcmRCcmVhay5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJvb3RJbmxpbmVCb3guY3BwIg0KLQkJCQk+DQotCQkJ
PC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJvb3RJ
bmxpbmVCb3guaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTY3JvbGxCZWhhdmlvci5jcHAiDQotCQkJCT4NCi0JCQk8L0Zp
bGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU2Nyb2xsQmVo
YXZpb3IuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHJlbmRlcmluZ1xTaGFkb3dFbGVtZW50LmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mby5oIg0KIAkJCQk+DQogCQkJPC9GaWxl
Pg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNoYWRvd0VsZW1l
bnQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHTWFya2VyRGF0YS5oIg0K
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXFNWR0NoYXJhY3RlckRhdGEuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRl
cmluZ1xTVkdNYXJrZXJMYXlvdXRJbmZvLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTMyNDY3LDExICszMjMwMywxMSBA
QAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR0NoYXJhY3RlckRhdGEuaCINCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHTWFya2VyTGF5b3V0SW5mby5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNW
R0NoYXJhY3RlckxheW91dEluZm8uY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xTVkdSZW5kZXJTdXBwb3J0LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTMyNTIzLDExICszMjM1OSwxMSBAQAogCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR0NoYXJhY3RlckxheW91dEluZm8uaCINCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHUmVuZGVyU3VwcG9ydC5oIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR0lu
bGluZUZsb3dCb3guY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdSZW5k
ZXJUcmVlQXNUZXh0LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTMyNTc5LDExICszMjQxNSwxMSBAQAogCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccmVuZGVyaW5nXFNWR0lubGluZUZsb3dCb3guaCINCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
IAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR0lubGluZVRleHRC
b3guY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdSZXNvdXJjZXMuY3Bw
Ig0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiDQpAQCAtMzI2MzUsMTUgKzMyNDcxLDExIEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
U1ZHSW5saW5lVGV4dEJveC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR01hcmtlckRhdGEuaCINCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHUmVzb3VyY2VzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHTWFya2VyTGF5
b3V0SW5mby5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR1Jlc291cmNl
c0NhY2hlLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIg0KQEAgLTMyNjk1LDExICszMjUyNywxMSBAQAogCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXFNWR01hcmtlckxheW91dEluZm8uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcU1ZHUmVzb3VyY2VzQ2FjaGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdSZW5kZXJTdXBwb3J0LmNw
cCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2
ZXIuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiDQpAQCAtMzI3NTEsMTEgKzMyNTgzLDExIEBACiAJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcU1ZHUmVuZGVyU3VwcG9ydC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xTVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR1JlbmRlclRyZWVBc1RleHQu
Y3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdTaGFkb3dUcmVlRWxlbWVu
dHMuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiDQpAQCAtMzI4MDcsMTEgKzMyNjM5LDExIEBACiAJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRl
cmluZ1xTVkdTaGFkb3dUcmVlRWxlbWVudHMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdSZXNvdXJjZXMuY3BwIg0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdUZXh0Q2h1bmtMYXlvdXRJbmZvLmNw
cCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KQEAgLTMyODYzLDExICszMjY5NSwxMSBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5n
XFNWR1Jlc291cmNlcy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdUZXh0
Q2h1bmtMYXlvdXRJbmZvLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwIg0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdUZXh0TGF5b3V0VXRpbGl0aWVzLmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0K
QEAgLTMyOTE5LDM0NyArMzI3NTEsMTEgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdS
ZXNvdXJjZXNDYWNoZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdUZXh0
TGF5b3V0VXRpbGl0aWVzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIg0K
LQkJCQk+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
DQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZXxX
aW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRv
b2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1
Z19JbnRlcm5hbHxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJ
Pg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4N
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
LQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0
aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0J
CQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZH
UmVzb3VyY2VzQ3ljbGVTb2x2ZXIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0K
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdSb290SW5saW5lQm94LmNwcCINCi0J
CQkJPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0K
LQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2lu
MzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29s
DQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4N
Ci0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0J
CQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJ
PC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR1Jv
b3RJbmxpbmVCb3guaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdTaGFkb3dUcmVlRWxlbWVudHMuY3BwIg0KLQkJCQk+
DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIN
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJ
CQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJ
CQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJ
Lz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQot
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8L0Zp
bGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHU2hhZG93
VHJlZUVsZW1lbnRzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHVGV4dENodW5rTGF5b3V0SW5mby5jcHAiDQotCQkJ
CT4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMy
Ig0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0K
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnX0lu
dGVybmFsfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQot
CQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5h
bWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQot
CQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJ
CQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCTwv
RmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdUZXh0
Q2h1bmtMYXlvdXRJbmZvLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHVGV4dExheW91dFV0aWxpdGllcy5jcHAiDQot
CQkJCT4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9v
bA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+
DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQot
CQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJ
CTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xTVkdU
ZXh0TGF5b3V0VXRpbGl0aWVzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcU1ZHVGV4dFF1ZXJ5LmNwcCINCi0JCQkJPg0K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfSW50ZXJu
YWx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJ
CTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm98V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJ
CT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+
DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJ
CQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1
cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPC9GaWxl
Pg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFNWR1RleHRRdWVy
eS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXFRhYmxlTGF5b3V0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVy
aW5nXFRhYmxlTGF5b3V0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCkBAIC0z
MzQ4MiwzNyArMzI5NzgsNDg1IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVUcmFuc2Zvcm1EYXRh
LmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVRyYW5zZm9y
bURhdGEuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVWaXN1YWxEYXRhLmNwcCINCisJCQkJCT4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJp
bmdcc3R5bGVcU3R5bGVWaXN1YWxEYXRhLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJ
PEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFNWR1JlbmRlclN0
eWxlLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU1ZHUmVuZGVyU3R5bGUuaCINCisJCQkJCT4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
c3R5bGVcU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJ
CQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU1ZHUmVuZGVy
U3R5bGVEZWZzLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQk8L0ZpbHRlcj4NCisJCQk8
RmlsdGVyDQorCQkJCU5hbWU9InN2ZyINCisJCQkJPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR0lubGluZS5jcHAiDQorCQkJCQk+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJ
CTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlO
YW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR0lubGlu
ZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHJlbmRlcmluZ1xzdmdcUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAiDQorCQkJCQk+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJ
CTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlO
YW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR0lubGlu
ZVRleHQuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR1RTcGFuLmNwcCINCisJCQkJCT4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5h
bWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdp
bjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8
VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcUmVuZGVyU1ZHVFNwYW4u
aCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR1RleHQuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0K
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVi
dWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0K
KwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4N
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xSZW5kZXJTVkdUZXh0LmgiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXHN2Z1xSZW5kZXJTVkdUZXh0UGF0aC5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19J
bnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJ
CQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3ZnXFJlbmRlclNWR1RleHRQYXRoLmgiDQogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXHN0eWxlXFN0eWxlVmlzdWFsRGF0YS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xzdmdcU1ZHSW5saW5lRmxvd0JveC5jcHAiDQogCQkJCQk+DQorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVWaXN1YWxEYXRhLmgiDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHSW5saW5lRmxvd0JveC5oIg0K
IAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxTVkdSZW5kZXJTdHlsZS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHSW5saW5lVGV4dEJveC5jcHAiDQogCQkJCQk+DQorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29s
DQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJE
ZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiIN
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wN
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU1ZHUmVuZGVyU3R5bGUuaCIN
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdJbmxpbmVUZXh0Qm94Lmgi
DQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXHN0eWxlXFNWR1JlbmRlclN0eWxlRGVmcy5jcHAiDQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHUm9vdElubGluZUJveC5jcHAiDQogCQkJCQk+DQor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJ
CTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlO
YW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8
RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU1ZHUmVuZGVyU3R5
bGVEZWZzLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHUm9vdElu
bGluZUJveC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQotCQkJPC9GaWx0ZXI+DQotCQkJPEZp
bHRlcg0KLQkJCQlOYW1lPSJzdmciDQotCQkJCT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xTVkdUZXh0Q2h1bmsuY3BwIg0KIAkJCQkJPg0KQEAgLTMz
NTQ5LDYgKzMzNDkzLDYyIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xT
VkdUZXh0TWV0cmljcy5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHVGV4dFF1ZXJ5LmNwcCINCisJCQkJ
CT4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0K
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0K
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJ
CQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQor
CQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcU1ZHVGV4dFF1
ZXJ5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCTwvRmlsdGVy
Pg0KIAkJPEZpbHRlcg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA2ODg3MykKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsOCArMTA4LDI0IEBACiAJCTA4NERC
QUExMEVEMzlEMzYwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0REJBOUQwRUQzOUQzNTAwMzhDMjI2IC8q
IFdNTFZhcmlhYmxlcy5jcHAgKi87IH07CiAJCTA4NERCQUEyMEVEMzlEMzYwMDM4QzIyNiAvKiBX
TUxWYXJpYWJsZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4NERCQTlFMEVEMzlEMzYwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuaCAqLzsgfTsKIAkJ
MDg1M0Q3MzIxMUM5MTA5MDAwQjJGRDQyIC8qIFNWR1RleHRDaHVua0xheW91dEluZm8uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1M0Q3MkYxMUM5
MTA4RjAwQjJGRDQyIC8qIFNWR1RleHRDaHVua0xheW91dEluZm8uY3BwICovOyB9OwotCQkwODUz
RDczMzExQzkxMDkwMDBCMkZENDIgLyogU1ZHVGV4dFF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTNENzMwMTFDOTEwOTAwMEIyRkQ0MiAv
KiBTVkdUZXh0UXVlcnkuY3BwICovOyB9OwotCQkwODUzRDczNDExQzkxMDkwMDBCMkZENDIgLyog
U1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODUzRDczMTExQzkxMDkwMDBCMkZENDIgLyogU1ZHVGV4dFF1ZXJ5LmggKi87IH07CisJ
CTA4NTRCMDE0MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDIxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5jcHAgKi87IH07CisJCTA4NTRCMDE1MTI1NUU0RTYw
MEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJ
bmxpbmUuaCAqLzsgfTsKKwkJMDg1NEIwMTYxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lu
bGluZVRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDg1NEIwMDQxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuY3BwICov
OyB9OworCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDUx
MjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCAqLzsgfTsKKwkJMDg1NEIw
MTgxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDYxMjU1RTRFNjAwQjlDREQwIC8q
IFJlbmRlclNWR1RleHQuY3BwICovOyB9OworCQkwODU0QjAxOTEyNTVFNEU2MDBCOUNERDAgLyog
UmVuZGVyU1ZHVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDg1NEIwMDcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHQuaCAqLzsgfTsK
KwkJMDg1NEIwMUExMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHRQYXRoLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDA4MTI1NUU0
RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0UGF0aC5jcHAgKi87IH07CisJCTA4NTRCMDFCMTI1
NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDkxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR1RleHRQYXRoLmggKi87IH07CisJCTA4NTRCMDFDMTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdUU3Bhbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwODU0QjAwQTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNwYW4uY3BwICov
OyB9OworCQkwODU0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNwYW4uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDBCMTI1NUU0
RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUU3Bhbi5oICovOyB9OworCQkwODU0QjAxRTEyNTVFNEU2
MDBCOUNERDAgLyogU1ZHSW5saW5lRmxvd0JveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwQzEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5s
aW5lRmxvd0JveC5jcHAgKi87IH07CisJCTA4NTRCMDFGMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJ
bmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODU0QjAwRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lRmxvd0JveC5oICovOyB9
OworCQkwODU0QjAyMDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwRTEyNTVF
NEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5jcHAgKi87IH07CisJCTA4NTRCMDIxMTI1
NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwRjEyNTVFNEU2MDBCOUNERDAgLyogU1ZH
SW5saW5lVGV4dEJveC5oICovOyB9OworCQkwODU0QjAyMjEyNTVFNEU2MDBCOUNERDAgLyogU1ZH
Um9vdElubGluZUJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwODU0QjAxMDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5jcHAg
Ki87IH07CisJCTA4NTRCMDIzMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdSb290SW5saW5lQm94Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAxMTEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5oICovOyB9OworCQkwODU0QjAyNDEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDEyMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdU
ZXh0UXVlcnkuY3BwICovOyB9OworCQkwODU0QjAyNTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4
dFF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
ODU0QjAxMzEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggKi87IH07CiAJCTA4NTYz
QkI0MTE3ODYxNzgwMDEyQjU3OCAvKiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NjNCQjIxMTc4NjE3
NzAwMTJCNTc4IC8qIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAgKi87IH07CiAJCTA4NTYz
QkI1MTE3ODYxNzgwMDEyQjU3OCAvKiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTYzQkIzMTE3ODYxNzcw
MDEyQjU3OCAvKiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uaCAqLzsgfTsKIAkJMDg1NjNCRDAx
MTc4NjVGNTAwMTJCNTc4IC8qIFJlbmRlclNWR1Jlc291cmNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTYzQkNGMTE3ODY1RjUwMDEyQjU3OCAv
KiBSZW5kZXJTVkdSZXNvdXJjZS5jcHAgKi87IH07CkBAIC0xODQzLDE4ICsxODU5LDYgQEAKIAkJ
ODUzQ0E5RDcwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNWR0NvbnRhaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5Q0IwQUVFQzVFOTAw
MjM3MkRDIC8qIFJlbmRlclNWR0NvbnRhaW5lci5oICovOyB9OwogCQk4NTNDQTlEODBBRUVDNUU5
MDAyMzcyREMgLyogUmVuZGVyU1ZHSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5Q0MwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNW
R0ltYWdlLmNwcCAqLzsgfTsKIAkJODUzQ0E5RDkwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNW
R0ltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTNDQTlDRDBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW1hZ2UuaCAqLzsgfTsKLQkJODUz
Q0E5REEwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNWR0lubGluZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTNDQTlDRTBBRUVDNUU5MDAyMzcy
REMgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAqLzsgfTsKLQkJODUzQ0E5REIwQUVFQzVFOTAwMjM3
MkRDIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUzQ0E5Q0YwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNWR0lubGlu
ZS5oICovOyB9OwotCQk4NTNDQTlEQzBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5l
VGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTNDQTlEMDBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAgKi87IH07
Ci0JCTg1M0NBOUREMEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTNDQTlEMTBBRUVD
NUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oICovOyB9OwotCQk4NTNDQTlERTBB
RUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHVGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTNDQTlEMjBBRUVDNUU5MDAyMzcyREMgLyogUmVu
ZGVyU1ZHVGV4dC5jcHAgKi87IH07Ci0JCTg1M0NBOURGMEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5k
ZXJTVkdUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTNDQTlEMzBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHVGV4dC5oICovOyB9OwotCQk4
NTNDQTlFMDBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHVFNwYW4uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5RDQwQUVFQzVFOTAwMjM3
MkRDIC8qIFJlbmRlclNWR1RTcGFuLmNwcCAqLzsgfTsKLQkJODUzQ0E5RTEwQUVFQzVFOTAwMjM3
MkRDIC8qIFJlbmRlclNWR1RTcGFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTNDQTlENTBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHVFNwYW4u
aCAqLzsgfTsKLQkJODUzQ0E5RTYwQUVFQzYwODAwMjM3MkRDIC8qIFNWR0lubGluZUZsb3dCb3gu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5
RTIwQUVFQzYwODAwMjM3MkRDIC8qIFNWR0lubGluZUZsb3dCb3guY3BwICovOyB9OwotCQk4NTND
QTlFNzBBRUVDNjA4MDAyMzcyREMgLyogU1ZHSW5saW5lRmxvd0JveC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5RTMwQUVFQzYwODAwMjM3MkRD
IC8qIFNWR0lubGluZUZsb3dCb3guaCAqLzsgfTsKLQkJODUzQ0E5RTgwQUVFQzYwODAwMjM3MkRD
IC8qIFNWR1Jvb3RJbmxpbmVCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUzQ0E5RTQwQUVFQzYwODAwMjM3MkRDIC8qIFNWR1Jvb3RJbmxpbmVC
b3guY3BwICovOyB9OwotCQk4NTNDQTlFOTBBRUVDNjA4MDAyMzcyREMgLyogU1ZHUm9vdElubGlu
ZUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUz
Q0E5RTUwQUVFQzYwODAwMjM3MkRDIC8qIFNWR1Jvb3RJbmxpbmVCb3guaCAqLzsgfTsKIAkJODUz
Q0E5RUMwQUVFQzYzQzAwMjM3MkRDIC8qIFJlbmRlckZvcmVpZ25PYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5RUEwQUVFQzYzQzAw
MjM3MkRDIC8qIFJlbmRlckZvcmVpZ25PYmplY3QuY3BwICovOyB9OwogCQk4NTNDQTlFRDBBRUVD
NjNDMDAyMzcyREMgLyogUmVuZGVyRm9yZWlnbk9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQ0E5RUIwQUVFQzYzQzAwMjM3MkRDIC8qIFJl
bmRlckZvcmVpZ25PYmplY3QuaCAqLzsgfTsKIAkJODUzQ0E5RjAwQUVFQzY1NzAwMjM3MkRDIC8q
IFJlbmRlclBhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUzQ0E5RUUwQUVFQzY1NzAwMjM3MkRDIC8qIFJlbmRlclBhdGguY3BwICovOyB9OwpA
QCAtMzgxOCw4ICszODIyLDYgQEAKIAkJQTlEMjQ4MDcwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9N
TWltZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE5RDI0ODAzMEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggKi87IH07CiAJCUE5
RDI0ODA4MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDQwRDc1N0U3RDAw
RkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5jcHAgKi87IH07CiAJCUE5RDI0ODA5MEQ3NTdF
N0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5RDI0ODA1MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RP
TU1pbWVUeXBlQXJyYXkuaCAqLzsgfTsKLQkJQUEwOTcyQ0MwQjY5NDdBODAwQTcwNUU5IC8qIFNW
R0lubGluZVRleHRCb3guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUEwOTcyQ0EwQjY5NDdBODAwQTcwNUU5IC8qIFNWR0lubGluZVRleHRCb3guY3Bw
ICovOyB9OwotCQlBQTA5NzJDRDBCNjk0N0E4MDBBNzA1RTkgLyogU1ZHSW5saW5lVGV4dEJveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEwOTcyQ0Iw
QjY5NDdBODAwQTcwNUU5IC8qIFNWR0lubGluZVRleHRCb3guaCAqLzsgfTsKIAkJQUEyMUVDQ0Ew
QUJGMEZCQTAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEwOTc4RUQwQUJBQTZFMTAwODc0NDgw
IC8qIENTU0N1cnNvckltYWdlVmFsdWUuY3BwICovOyB9OwogCQlBQTIxRUNDRDBBQkYwRkM2MDAy
QjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUEwOTc4RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNv
ckltYWdlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBQTMxQjVCNDBDMURGRDEwMDBBRTcwODMgLyogUmVuZGVyU1ZHUm9vdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTMxQjVCMjBDMURG
RDEwMDBBRTcwODMgLyogUmVuZGVyU1ZHUm9vdC5jcHAgKi87IH07CkBAIC00MTI4LDggKzQxMzAs
NiBAQAogCQlCMjU1OTlBNTBEMDBEOEJBMDBCQjgyNUMgLyogRW1wdHlDbGllbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTkwRDBEMDBEOEI5
MDBCQjgyNUMgLyogRW1wdHlDbGllbnRzLmggKi87IH07CiAJCUIyNURGQUFGMEIyRTI5MjkwMDBF
NjUxMCAvKiBKU1NWR01hdHJpeEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMjVERkFBRTBCMkUyOTI5MDAwRTY1MTAgLyogSlNTVkdNYXRy
aXhDdXN0b20uY3BwICovOyB9OwogCQlCMjYyQjgwNDBEMUYzMkQwMDAxNThGMDkgLyogU1ZHRm9u
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjYy
QjgwMzBEMUYzMkQwMDAxNThGMDkgLyogU1ZHRm9udC5jcHAgKi87IH07Ci0JCUIyNjU1NEVBMEI4
MEQ3NDkwMEE1MEVDMyAvKiBSZW5kZXJTVkdUZXh0UGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjY1NTRFODBCODBENzQ5MDBBNTBFQzMgLyog
UmVuZGVyU1ZHVGV4dFBhdGguY3BwICovOyB9OwotCQlCMjY1NTRFQjBCODBENzQ5MDBBNTBFQzMg
LyogUmVuZGVyU1ZHVGV4dFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyNjU1NEU5MEI4MEQ3NDkwMEE1MEVDMyAvKiBSZW5kZXJTVkdUZXh0UGF0
aC5oICovOyB9OwogCQlCMjY2Q0Q0RDBDM0FFQzY1MDBFQjA4RDIgLyogSlNTVkdFeGNlcHRpb24u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI2NkNE
NEIwQzNBRUM2NTAwRUIwOEQyIC8qIEpTU1ZHRXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJQjI2NkNE
NEUwQzNBRUM2NTAwRUIwOEQyIC8qIEpTU1ZHRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjY2Q0Q0QzBDM0FFQzY1MDBFQjA4RDIgLyog
SlNTVkdFeGNlcHRpb24uaCAqLzsgfTsKIAkJQjI3NTM1NTgwQjA1MzgxNDAwMkNFNjRGIC8qIFRy
YW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjI3NTM1MkEwQjA1MzgxNDAwMkNFNjRGIC8qIFRyYW5zZm9ybWF0aW9u
TWF0cml4Q0cuY3BwICovOyB9OwpAQCAtNjA0OSw4ICs2MDQ5LDI0IEBACiAJCTA4NERCQTlEMEVE
MzlEMzUwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV01MVmFyaWFibGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDg0REJBOUUwRUQzOUQzNjAwMzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxWYXJpYWJsZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg1M0Q3MkYxMUM5MTA4RjAwQjJGRDQyIC8qIFNWR1RleHRDaHVua0xh
eW91dEluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGV4
dENodW5rTGF5b3V0SW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4NTNE
NzMwMTFDOTEwOTAwMEIyRkQ0MiAvKiBTVkdUZXh0UXVlcnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGV4dFF1ZXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMDg1M0Q3MzExMUM5MTA5MDAwQjJGRDQyIC8qIFNWR1RleHRRdWVyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXh0UXVlcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg1NEIwMDIxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNW
R0lubGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJT
VkdJbmxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODU0QjAwMzEyNTVF
NEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwODU0QjAwNDEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdJbmxpbmVUZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg1NEIwMDUxMjU1RTRFNjAwQjlDREQw
IC8qIFJlbmRlclNWR0lubGluZVRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyU1ZHSW5saW5lVGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
ODU0QjAwNjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdUZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDg1NEIwMDcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1Rl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHVGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODU0QjAwODEyNTVFNEU2MDBCOUNERDAgLyog
UmVuZGVyU1ZHVGV4dFBhdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyU1ZHVGV4dFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
ODU0QjAwOTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHVGV4dFBhdGguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDg1NEIwMEExMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RT
cGFuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1RT
cGFuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg1NEIwMEIxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR1RTcGFuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNWR1RTcGFuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NTRC
MDBDMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVGbG93Qm94LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0lubGluZUZsb3dCb3guY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwODU0QjAwRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5l
Rmxvd0JveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbmxpbmVGbG93
Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NTRCMDBFMTI1NUU0RTYwMEI5
Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0lubGluZVRleHRCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwODU0QjAwRjEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbmxpbmVUZXh0Qm94Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NTRCMDEwMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdSb290
SW5saW5lQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1Jv
b3RJbmxpbmVCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODU0QjAxMTEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdSb290SW5saW5lQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA4NTRCMDEyMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHVGV4dFF1ZXJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg1NEIwMTMxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1Rl
eHRRdWVyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdUZXh0UXVlcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NjNCQjIxMTc4NjE3NzAwMTJCNTc4
IC8qIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwODU2M0JCMzExNzg2MTc3MDAxMkI1NzggLyogUmVuZGVyU1ZHUmVz
b3VyY2VQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNW
R1Jlc291cmNlUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU2M0JD
RjExNzg2NUY1MDAxMkI1NzggLyogUmVuZGVyU1ZHUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzkwMCwxOCArNzkxNiw2IEBACiAJCTg1M0NBOUNCMEFFRUM1
RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlclNWR0NvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NTNDQTlDQzBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW1hZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0ltYWdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUzQ0E5Q0QwQUVFQzVFOTAwMjM3MkRDIC8q
IFJlbmRlclNWR0ltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJTVkdJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTNDQTlDRTBBRUVD
NUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdJbmxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NTNDQTlDRjBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdJbmxpbmUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUzQ0E5RDAwQUVFQzVFOTAwMjM3MkRDIC8qIFJl
bmRlclNWR0lubGluZVRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbmRlclNWR0lubGluZVRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk4NTNDQTlEMTBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHSW5saW5lVGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTNDQTlEMjBBRUVDNUU5MDAyMzcyREMgLyogUmVu
ZGVyU1ZHVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVu
ZGVyU1ZHVGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1M0NBOUQzMEFF
RUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJTVkdUZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1M0NBOUQ0MEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdUU3Bhbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHVFNwYW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk4NTNDQTlENTBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVy
U1ZHVFNwYW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1RT
cGFuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1M0NBOUUyMEFFRUM2MDgwMDIz
NzJEQyAvKiBTVkdJbmxpbmVGbG93Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdJbmxpbmVGbG93Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODUzQ0E5RTMwQUVFQzYwODAwMjM3MkRDIC8qIFNWR0lubGluZUZsb3dCb3guaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0lubGluZUZsb3dCb3guaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUzQ0E5RTQwQUVFQzYwODAwMjM3MkRDIC8qIFNWR1Jv
b3RJbmxpbmVCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R1Jvb3RJbmxpbmVCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTNDQTlF
NTBBRUVDNjA4MDAyMzcyREMgLyogU1ZHUm9vdElubGluZUJveC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHUm9vdElubGluZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NTNDQTlFQTBBRUVDNjNDMDAyMzcyREMgLyogUmVuZGVyRm9yZWlnbk9iamVj
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRm9yZWln
bk9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1M0NBOUVCMEFFRUM2
M0MwMDIzNzJEQyAvKiBSZW5kZXJGb3JlaWduT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJGb3JlaWduT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg1M0NBOUVFMEFFRUM2NTcwMDIzNzJEQyAvKiBSZW5kZXJQYXRoLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJQYXRoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1NjYsOCArOTU3MCw2IEBACiAJCUE5RDI0ODAzMEQ3
NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0RPTU1pbWVUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE5RDI0ODA0MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWltZVR5cGVBcnJheS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE5RDI0ODA1MEQ3NTdFN0QwMEZERjk1OSAv
KiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRE9NTWltZVR5cGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBQTA5
NzJDQTBCNjk0N0E4MDBBNzA1RTkgLyogU1ZHSW5saW5lVGV4dEJveC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHSW5saW5lVGV4dEJveC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUFBMDk3MkNCMEI2OTQ3QTgwMEE3MDVFOSAvKiBTVkdJbmxp
bmVUZXh0Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbmxpbmVU
ZXh0Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBMDk3OEVEMEFCQUE2RTEw
MDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQUEwOTc4RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdl
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1cnNvckltYWdl
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUEzMUI1QjIwQzFERkQxMDAw
QUU3MDgzIC8qIFJlbmRlclNWR1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbmRlclNWR1Jvb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAwMTksOCArMTAwMjEsNiBAQAogCQlCMjU1OTkwRDBEMDBEOEI5MDBCQjgyNUMgLyogRW1w
dHlDbGllbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eUNsaWVu
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI1REZBQUUwQjJFMjkyOTAwMEU2
NTEwIC8qIEpTU1ZHTWF0cml4Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1NWR01hdHJpeEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUIyNjJCODAzMEQxRjMyRDAwMDE1OEYwOSAvKiBTVkdGb250LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGb250LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQjI2NTU0RTgwQjgwRDc0OTAwQTUwRUMzIC8qIFJlbmRlclNWR1RleHRQ
YXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdU
ZXh0UGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyNjU1NEU5MEI4MEQ3
NDkwMEE1MEVDMyAvKiBSZW5kZXJTVkdUZXh0UGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyU1ZHVGV4dFBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjI2NkNENEIwQzNBRUM2NTAwRUIwOEQyIC8qIEpTU1ZHRXhjZXB0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0V4Y2VwdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyNjZDRDRDMEMzQUVDNjUwMEVCMDhEMiAvKiBK
U1NWR0V4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdF
eGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI3NTM1MkEwQjA1Mzgx
NDAwMkNFNjRGIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2MzgsNiArMTE2MzgsMjIgQEAKIAkJMDg4QzJGNzQx
MjM5MDA4MDAwM0Q2NUNFIC8qIHN2ZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJMDg1NEIwMDIxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGlu
ZS5jcHAgKi8sCisJCQkJMDg1NEIwMDMxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGlu
ZS5oICovLAorCQkJCTA4NTRCMDA0MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVU
ZXh0LmNwcCAqLywKKwkJCQkwODU0QjAwNTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5s
aW5lVGV4dC5oICovLAorCQkJCTA4NTRCMDA2MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdU
ZXh0LmNwcCAqLywKKwkJCQkwODU0QjAwNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4
dC5oICovLAorCQkJCTA4NTRCMDA4MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0UGF0
aC5jcHAgKi8sCisJCQkJMDg1NEIwMDkxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHRQ
YXRoLmggKi8sCisJCQkJMDg1NEIwMEExMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RTcGFu
LmNwcCAqLywKKwkJCQkwODU0QjAwQjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNwYW4u
aCAqLywKKwkJCQkwODU0QjAwQzEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lRmxvd0JveC5j
cHAgKi8sCisJCQkJMDg1NEIwMEQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZUZsb3dCb3gu
aCAqLywKKwkJCQkwODU0QjAwRTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5j
cHAgKi8sCisJCQkJMDg1NEIwMEYxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZVRleHRCb3gu
aCAqLywKKwkJCQkwODU0QjAxMDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5j
cHAgKi8sCisJCQkJMDg1NEIwMTExMjU1RTRFNjAwQjlDREQwIC8qIFNWR1Jvb3RJbmxpbmVCb3gu
aCAqLywKIAkJCQkwOEYwQkZCRDEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dENodW5rLmNwcCAq
LywKIAkJCQkwOEYwQkZCRTEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dENodW5rLmggKi8sCiAJ
CQkJMDhGMEJGQkYxMjU1QzUzQzAwMDc1MTg1IC8qIFNWR1RleHRGcmFnbWVudC5oICovLApAQCAt
MTE2NDcsNiArMTE2NjMsOCBAQAogCQkJCTA4OEMyRjc4MTIzOTAwODEwMDNENjVDRSAvKiBTVkdU
ZXh0TGF5b3V0QnVpbGRlci5oICovLAogCQkJCTA4RjBCRkMwMTI1NUM1M0MwMDA3NTE4NSAvKiBT
VkdUZXh0TWV0cmljcy5jcHAgKi8sCiAJCQkJMDhGMEJGQzExMjU1QzUzQzAwMDc1MTg1IC8qIFNW
R1RleHRNZXRyaWNzLmggKi8sCisJCQkJMDg1NEIwMTIxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1Rl
eHRRdWVyeS5jcHAgKi8sCisJCQkJMDg1NEIwMTMxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRR
dWVyeS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBzdmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMTc2NTUsMTAgKzE3NjczLDYgQEAKIAkJCQlBODA5RjFBODBCNzM3RkI2MDAyRTRE
N0YgLyogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmggKi8sCiAJCQkJODUzQ0E5Q0MwQUVFQzVF
OTAwMjM3MkRDIC8qIFJlbmRlclNWR0ltYWdlLmNwcCAqLywKIAkJCQk4NTNDQTlDRDBBRUVDNUU5
MDAyMzcyREMgLyogUmVuZGVyU1ZHSW1hZ2UuaCAqLywKLQkJCQk4NTNDQTlDRTBBRUVDNUU5MDAy
MzcyREMgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAqLywKLQkJCQk4NTNDQTlDRjBBRUVDNUU5MDAy
MzcyREMgLyogUmVuZGVyU1ZHSW5saW5lLmggKi8sCi0JCQkJODUzQ0E5RDAwQUVFQzVFOTAwMjM3
MkRDIC8qIFJlbmRlclNWR0lubGluZVRleHQuY3BwICovLAotCQkJCTg1M0NBOUQxMEFFRUM1RTkw
MDIzNzJEQyAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0LmggKi8sCiAJCQkJQThGNUMwQjcwRjkyODVB
QzAwOThFMDZCIC8qIFJlbmRlclNWR01vZGVsT2JqZWN0LmNwcCAqLywKIAkJCQlBOEY1QzBCNjBG
OTI4NUFDMDA5OEUwNkIgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCAqLywKIAkJCQkwODU2M0JD
RjExNzg2NUY1MDAxMkI1NzggLyogUmVuZGVyU1ZHUmVzb3VyY2UuY3BwICovLApAQCAtMTc2ODks
MTQgKzE3NzAzLDggQEAKIAkJCQlBQTMxQjVCMzBDMURGRDEwMDBBRTcwODMgLyogUmVuZGVyU1ZH
Um9vdC5oICovLAogCQkJCTA4REFCOUI4MTEwM0Q5QTUwMDNFN0FCQSAvKiBSZW5kZXJTVkdTaGFk
b3dUcmVlUm9vdENvbnRhaW5lci5jcHAgKi8sCiAJCQkJMDhEQUI5QjkxMTAzRDlBNTAwM0U3QUJB
IC8qIFJlbmRlclNWR1NoYWRvd1RyZWVSb290Q29udGFpbmVyLmggKi8sCi0JCQkJODUzQ0E5RDIw
QUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNWR1RleHQuY3BwICovLAotCQkJCTg1M0NBOUQzMEFF
RUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdUZXh0LmggKi8sCi0JCQkJQjI2NTU0RTgwQjgwRDc0
OTAwQTUwRUMzIC8qIFJlbmRlclNWR1RleHRQYXRoLmNwcCAqLywKLQkJCQlCMjY1NTRFOTBCODBE
NzQ5MDBBNTBFQzMgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCAqLywKIAkJCQlBOEE5MDlBQjBDQkNE
NkI1MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgKi8sCiAJ
CQkJQThBOTA5QUEwQ0JDRDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuaCAqLywKLQkJCQk4NTNDQTlENDBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHVFNw
YW4uY3BwICovLAotCQkJCTg1M0NBOUQ1MEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdUU3Bh
bi5oICovLAogCQkJCUIyQ0NFQzQ1MEM2Q0E5RjEwMDZBNTQyNCAvKiBSZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lci5jcHAgKi8sCiAJCQkJQjJDQ0VDNDYwQzZDQTlGMTAwNkE1NDI0IC8qIFJlbmRl
clNWR1ZpZXdwb3J0Q29udGFpbmVyLmggKi8sCiAJCQkJQThERjRBRTIwOTgwQzQyQzAwNTI5ODFC
IC8qIFJlbmRlclRhYmxlLmNwcCAqLywKQEAgLTE3NzQ1LDEwICsxNzc1Myw2IEBACiAJCQkJQjJC
MzNBNUUwQjg4N0NFRjAwQzE1OTg0IC8qIFNWR0NoYXJhY3RlckxheW91dEluZm8uaCAqLywKIAkJ
CQkwOEM0NkI2NzEyMTJGMTVEMDAxMUFGNDAgLyogU1ZHSW1hZ2VCdWZmZXJUb29scy5jcHAgKi8s
CiAJCQkJMDhDNDZCNjgxMjEyRjE1RDAwMTFBRjQwIC8qIFNWR0ltYWdlQnVmZmVyVG9vbHMuaCAq
LywKLQkJCQk4NTNDQTlFMjBBRUVDNjA4MDAyMzcyREMgLyogU1ZHSW5saW5lRmxvd0JveC5jcHAg
Ki8sCi0JCQkJODUzQ0E5RTMwQUVFQzYwODAwMjM3MkRDIC8qIFNWR0lubGluZUZsb3dCb3guaCAq
LywKLQkJCQlBQTA5NzJDQTBCNjk0N0E4MDBBNzA1RTkgLyogU1ZHSW5saW5lVGV4dEJveC5jcHAg
Ki8sCi0JCQkJQUEwOTcyQ0IwQjY5NDdBODAwQTcwNUU5IC8qIFNWR0lubGluZVRleHRCb3guaCAq
LywKIAkJCQkwODM4NUZGNTEwRjAxODYwMDBCRkUwN0IgLyogU1ZHTWFya2VyRGF0YS5oICovLAog
CQkJCTA4NzM1RkI2MTBFOTEyMzIwMDZENkZBRCAvKiBTVkdNYXJrZXJMYXlvdXRJbmZvLmNwcCAq
LywKIAkJCQkwODczNUZCNzEwRTkxMjMyMDA2RDZGQUQgLyogU1ZHTWFya2VyTGF5b3V0SW5mby5o
ICovLApAQCAtMTc3NjIsMTYgKzE3NzY2LDEyIEBACiAJCQkJMDg0RDBFM0IxMUY1ODE2MTAwMDgx
RTFBIC8qIFNWR1Jlc291cmNlc0NhY2hlLmggKi8sCiAJCQkJMDg1QjA1QzAxMUZBRTE2QzAwNEQ2
NUY2IC8qIFNWR1Jlc291cmNlc0N5Y2xlU29sdmVyLmNwcCAqLywKIAkJCQkwODVCMDVDMTExRkFF
MTZDMDA0RDY1RjYgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuaCAqLywKLQkJCQk4NTNDQTlF
NDBBRUVDNjA4MDAyMzcyREMgLyogU1ZHUm9vdElubGluZUJveC5jcHAgKi8sCi0JCQkJODUzQ0E5
RTUwQUVFQzYwODAwMjM3MkRDIC8qIFNWR1Jvb3RJbmxpbmVCb3guaCAqLywKIAkJCQkwOERBQjlD
MDExMDNEOUMxMDAzRTdBQkEgLyogU1ZHU2hhZG93VHJlZUVsZW1lbnRzLmNwcCAqLywKIAkJCQkw
OERBQjlDMTExMDNEOUMxMDAzRTdBQkEgLyogU1ZHU2hhZG93VHJlZUVsZW1lbnRzLmggKi8sCiAJ
CQkJMDg1M0Q3MkYxMUM5MTA4RjAwQjJGRDQyIC8qIFNWR1RleHRDaHVua0xheW91dEluZm8uY3Bw
ICovLAogCQkJCTA4NDJCQzgwMTE5MDE0NzIwMEM3RDA4RiAvKiBTVkdUZXh0Q2h1bmtMYXlvdXRJ
bmZvLmggKi8sCiAJCQkJMDgzRjUyOTcxMTk1N0ZCRTAwNjUzRUJFIC8qIFNWR1RleHRMYXlvdXRV
dGlsaXRpZXMuY3BwICovLAogCQkJCTA4M0Y1Mjk4MTE5NTdGQkUwMDY1M0VCRSAvKiBTVkdUZXh0
TGF5b3V0VXRpbGl0aWVzLmggKi8sCi0JCQkJMDg1M0Q3MzAxMUM5MTA5MDAwQjJGRDQyIC8qIFNW
R1RleHRRdWVyeS5jcHAgKi8sCi0JCQkJMDg1M0Q3MzExMUM5MTA5MDAwQjJGRDQyIC8qIFNWR1Rl
eHRRdWVyeS5oICovLAogCQkJCUE4Q0ZGMDRDMEExNTRGMDkwMDBBNDIzNCAvKiBUYWJsZUxheW91
dC5oICovLAogCQkJCUFCMDE0REUxMEU2ODlBNDMwMEUxMDQ0NSAvKiBUZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwICovLAogCQkJCUFCMDE0REUyMEU2ODlBNDMwMEUxMDQ0NSAvKiBUZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaCAqLywKQEAgLTIwMjgxLDggKzIwMjgxLDYgQEAKIAkJCQlBODA5
RjE0NzBCNzM3OTNBMDAyRTREN0YgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODA5RjFBQTBCNzM3RkI2MDAyRTREN0YgLyogUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTNDQTlEOTBBRUVDNUU5MDAyMzcyREMgLyog
UmVuZGVyU1ZHSW1hZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1M0NBOURCMEFFRUM1RTkwMDIz
NzJEQyAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1M0NBOUREMEFF
RUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEY1QzBCODBGOTI4NUFDMDA5OEUwNkIgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4MzE5MkFBMTEyQjQzMDUwMDgzQzNCOSAvKiBSZW5kZXJTVkdSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRCREExNkMxMTM1OEQyQTAwREJGNjRDIC8qIFJl
bmRlclNWR1Jlc291cmNlQ2xpcHBlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDI5OCwxMCArMjAy
OTYsNyBAQAogCQkJCTA4QzZBN0FDMTE3REZCQUIwMEZFQTFBMiAvKiBSZW5kZXJTVkdSZXNvdXJj
ZVNvbGlkQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMzFCNUI1MEMxREZEMTAwMEFFNzA4
MyAvKiBSZW5kZXJTVkdSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOERBQjlCQjExMDNEOUE1
MDAzRTdBQkEgLyogUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTg1M0NBOURGMEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdUZXh0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCMjY1NTRFQjBCODBENzQ5MDBBNTBFQzMgLyogUmVuZGVyU1ZHVGV4
dFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTkwOUFDMENCQ0Q2QjUwMDI5QjgwNyAvKiBS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTND
QTlFMTBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHVFNwYW4uaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyQ0NFQzQ4MEM2Q0E5RjEwMDZBNTQyNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjRBRUIwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRl
clRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGNEFFOTA5ODBDNDJDMDA1Mjk4MUIgLyog
UmVuZGVyVGFibGVDZWxsLmggaW4gSGVhZGVycyAqLywKQEAgLTIwNTg2LDggKzIwNTgxLDYgQEAK
IAkJCQkwOEM0NkI2QTEyMTJGMTVFMDAxMUFGNDAgLyogU1ZHSW1hZ2VCdWZmZXJUb29scy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBMkQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ltYWdlRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI4QzZBMkEwRDAwQzQ0ODAwMzM0QUE0IC8qIFNW
R0ltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTNDQTlFNzBBRUVDNjA4MDAyMzcy
REMgLyogU1ZHSW5saW5lRmxvd0JveC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUEwOTcyQ0QwQjY5
NDdBODAwQTcwNUU5IC8qIFNWR0lubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QTMwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMYW5nU3BhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QTMzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGguaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTM2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGhMaXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTIwNjQ5LDcgKzIwNjQyLDYgQEAKIAkJCQkwODREMEUzRDExRjU4MTYxMDAw
ODFFMUEgLyogU1ZHUmVzb3VyY2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODREMEUzRjExRjU4
MTYxMDAwODFFMUEgLyogU1ZHUmVzb3VyY2VzQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NUIwNUMzMTFGQUUxNkMwMDRENjVGNiAvKiBTVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJODUzQ0E5RTkwQUVFQzYwODAwMjM3MkRDIC8qIFNWR1Jvb3RJbmxpbmVC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUEzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdT
Y3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FBNjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHU2V0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhEQUI5QzMxMTAzRDlD
MTAwM0U3QUJBIC8qIFNWR1NoYWRvd1RyZWVFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MDY3Myw3ICsyMDY2NSw2IEBACiAJCQkJMDgzRjUyOUExMTk1N0ZCRTAwNjUzRUJFIC8qIFNWR1Rl
eHRMYXlvdXRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QUNFMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QUQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwODUzRDczNDExQzkxMDkwMDBCMkZENDIgLyogU1ZHVGV4dFF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FENDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVGl0bGVF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FENzBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDkzNyw2ICsyMDky
OCwxNSBAQAogCQkJCTA4RjBCRkMzMTI1NUM1M0MwMDA3NTE4NSAvKiBTVkdUZXh0Q2h1bmsuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM0MTI1NUM1M0MwMDA3NTE4NSAvKiBTVkdUZXh0RnJh
Z21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3NTE4NSAvKiBT
VkdUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg1NEIwMTUxMjU1RTRFNjAwQjlD
REQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg1NEIwMTcxMjU1
RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA4NTRCMDE5MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0LmggaW4gSGVhZGVycyAq
LywKKwkJCQkwODU0QjAxQjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCBp
biBIZWFkZXJzICovLAorCQkJCTA4NTRCMDFEMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdU
U3Bhbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg1NEIwMUYxMjU1RTRFNjAwQjlDREQwIC8qIFNW
R0lubGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAorCQkJCTA4NTRCMDIxMTI1NUU0RTYwMEI5
Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODU0QjAyMzEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yMjg4MSw4ICsyMjg4MSw2IEBACiAJCQkJQTgwOUYxNDgwQjczNzkzQjAwMkU0RDdGIC8q
IFJlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODA5RjFBQjBC
NzM3RkI2MDAyRTREN0YgLyogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1M0NBOUQ4MEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdJbWFnZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk4NTNDQTlEQTBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZH
SW5saW5lLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTg1M0NBOURDMEFFRUM1RTkwMDIzNzJEQyAv
KiBSZW5kZXJTVkdJbmxpbmVUZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RjVDMEI5MEY5
Mjg1QUMwMDk4RTA2QiAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwODU2M0JEMDExNzg2NUY1MDAxMkI1NzggLyogUmVuZGVyU1ZHUmVzb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODRCREExNkIxMTM1OEQyQTAwREJGNjRDIC8qIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyODk4LDEwICsyMjg5Niw3IEBA
CiAJCQkJMDhDNkE3QUIxMTdERkJBQjAwRkVBMUEyIC8qIFJlbmRlclNWR1Jlc291cmNlU29saWRD
b2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBQTMxQjVCNDBDMURGRDEwMDBBRTcwODMgLyog
UmVuZGVyU1ZHUm9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwOERBQjlCQTExMDNEOUE1MDAz
RTdBQkEgLyogUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJODUzQ0E5REUwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNWR1RleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQjI2NTU0RUEwQjgwRDc0OTAwQTUwRUMzIC8qIFJlbmRlclNWR1Rl
eHRQYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTkwOUFEMENCQ0Q2QjUwMDI5QjgwNyAv
KiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTg1M0NBOUUwMEFFRUM1RTkwMDIzNzJEQyAvKiBSZW5kZXJTVkdUU3Bhbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkNDRUM0NzBDNkNBOUYxMDA2QTU0MjQgLyogUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThERjRBRUMwOTgwQzQyQzAwNTI5ODFC
IC8qIFJlbmRlclRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4REY0QUVBMDk4MEM0MkMw
MDUyOTgxQiAvKiBSZW5kZXJUYWJsZUNlbGwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzE2Miw4
ICsyMzE1Nyw2IEBACiAJCQkJMDhDNDZCNjkxMjEyRjE1RTAwMTFBRjQwIC8qIFNWR0ltYWdlQnVm
ZmVyVG9vbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBMkMwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0ltYWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjhDNkEyOTBEMDBD
NDQ4MDAzMzRBQTQgLyogU1ZHSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODUz
Q0E5RTYwQUVFQzYwODAwMjM3MkRDIC8qIFNWR0lubGluZUZsb3dCb3guY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQUEwOTcyQ0MwQjY5NDdBODAwQTcwNUU5IC8qIFNWR0lubGluZVRleHRCb3guY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBMkYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xhbmdT
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0EzMjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHTGVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTM1MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdMZW5ndGhMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjMyMTksNyArMjMyMTIs
NiBAQAogCQkJCTA4NEQwRTNDMTFGNTgxNjEwMDA4MUUxQSAvKiBTVkdSZXNvdXJjZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDg0RDBFM0UxMUY1ODE2MTAwMDgxRTFBIC8qIFNWR1Jlc291cmNl
c0NhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4NUIwNUMyMTFGQUUxNkMwMDRENjVGNiAv
KiBTVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NTNDQTlF
ODBBRUVDNjA4MDAyMzcyREMgLyogU1ZHUm9vdElubGluZUJveC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCMjIyN0FBMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHU2NyaXB0RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjIyN0FBNTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHU2V0RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwOERBQjlDMjExMDNEOUMxMDAzRTdBQkEgLyogU1ZH
U2hhZG93VHJlZUVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjMyNDMsNyArMjMyMzUs
NiBAQAogCQkJCTA4M0Y1Mjk5MTE5NTdGQkUwMDY1M0VCRSAvKiBTVkdUZXh0TGF5b3V0VXRpbGl0
aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QUNEMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdUZXh0UGF0aEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBRDAwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMDg1M0Q3MzMxMUM5MTA5MDAwQjJGRDQyIC8qIFNWR1RleHRRdWVyeS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMjIyN0FEMzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVGl0bGVFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QUQ2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdU
cmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBRDkwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR1RyYW5zZm9ybWFibGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzQ2Myw2ICsyMzQ1
NCwxNSBAQAogCQkJCTQ5QjY5RTY1MTI1NEZFRUQwMDdENTdFQiAvKiBMb29wQmxpbm5UZXh0dXJl
Q29vcmRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4RjBCRkMyMTI1NUM1M0MwMDA3NTE4NSAv
KiBTVkdUZXh0Q2h1bmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhGMEJGQzUxMjU1QzUzQzAw
MDc1MTg1IC8qIFNWR1RleHRNZXRyaWNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA4NTRCMDE0
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMDg1NEIwMTYxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMDg1NEIwMTgxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1Rl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDg1NEIwMUExMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR1RleHRQYXRoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA4NTRCMDFDMTI1NUU0RTYw
MEI5Q0REMCAvKiBSZW5kZXJTVkdUU3Bhbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwODU0QjAx
RTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lRmxvd0JveC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwODU0QjAyMDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwODU0QjAyMjEyNTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGlu
ZUJveC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwODU0QjAyNDEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHVGV4dFF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNWR0FsbEluT25lLmNwcAkocmV2aXNpb24gNjg4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTVkdBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDYgQEAK
ICNpbmNsdWRlICJSZW5kZXJTVkdHcmFkaWVudFN0b3AuY3BwIgogI2luY2x1ZGUgIlJlbmRlclNW
R0hpZGRlbkNvbnRhaW5lci5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW1hZ2UuY3BwIgotI2lu
Y2x1ZGUgIlJlbmRlclNWR0lubGluZS5jcHAiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4
dC5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIgogI2luY2x1ZGUgIlJl
bmRlclNWR1Jlc291cmNlLmNwcCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIu
Y3BwIgpAQCAtNDcsMjQgKzQ1LDI4IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VTb2xp
ZENvbG9yLmNwcCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmNwcCIKICNpbmNsdWRlICJSZW5k
ZXJTVkdTaGFkb3dUcmVlUm9vdENvbnRhaW5lci5jcHAiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHVFNw
YW4uY3BwIgotI2luY2x1ZGUgIlJlbmRlclNWR1RleHQuY3BwIgotI2luY2x1ZGUgIlJlbmRlclNW
R1RleHRQYXRoLmNwcCIKICNpbmNsdWRlICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
LmNwcCIKICNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAiCiAjaW5jbHVk
ZSAiU1ZHQ2hhcmFjdGVyRGF0YS5jcHAiCiAjaW5jbHVkZSAiU1ZHQ2hhcmFjdGVyTGF5b3V0SW5m
by5jcHAiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VCdWZmZXJUb29scy5jcHAiCi0jaW5jbHVkZSAiU1ZH
SW5saW5lRmxvd0JveC5jcHAiCi0jaW5jbHVkZSAiU1ZHSW5saW5lVGV4dEJveC5jcHAiCiAjaW5j
bHVkZSAiU1ZHTWFya2VyTGF5b3V0SW5mby5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9y
dC5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyVHJlZUFzVGV4dC5jcHAiCiAjaW5jbHVkZSAiU1ZH
UmVzb3VyY2VzLmNwcCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5jcHAiCiAjaW5jbHVk
ZSAiU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuY3BwIgotI2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVC
b3guY3BwIgogI2luY2x1ZGUgIlNWR1NoYWRvd1RyZWVFbGVtZW50cy5jcHAiCiAjaW5jbHVkZSAi
U1ZHVGV4dENodW5rTGF5b3V0SW5mby5jcHAiCiAjaW5jbHVkZSAiU1ZHVGV4dExheW91dFV0aWxp
dGllcy5jcHAiCi0jaW5jbHVkZSAiU1ZHVGV4dFF1ZXJ5LmNwcCIKKworLy8gRklYTUU6IEFzIHNv
b24gYXMgYWxsIFNWRyByZW5kZXJlcnMgbGl2ZSBpbiByZW5kZXJpbmcvc3ZnLCB0aGlzIGZpbGUg
c2hvdWxkIGJlIG1vdmVkIHRoZXJlIGFzIHdlbGwsIHJlbW92aW5nIHRoZSBuZWVkIGZvciB0aGUg
c3ZnLyBpbmNsdWRlcyBiZWxvdy4KKyNpbmNsdWRlICJzdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCIK
KyNpbmNsdWRlICJzdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAiCisjaW5jbHVkZSAic3ZnL1Jl
bmRlclNWR1RTcGFuLmNwcCIKKyNpbmNsdWRlICJzdmcvUmVuZGVyU1ZHVGV4dC5jcHAiCisjaW5j
bHVkZSAic3ZnL1JlbmRlclNWR1RleHRQYXRoLmNwcCIKKyNpbmNsdWRlICJzdmcvU1ZHSW5saW5l
Rmxvd0JveC5jcHAiCisjaW5jbHVkZSAic3ZnL1NWR0lubGluZVRleHRCb3guY3BwIgorI2luY2x1
ZGUgInN2Zy9TVkdSb290SW5saW5lQm94LmNwcCIKKyNpbmNsdWRlICJzdmcvU1ZHVGV4dFF1ZXJ5
LmNwcCIKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24g
Njg4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEyNCArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IFdlYktpdCBwcm9qZWN0LgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBPbGl2ZXIgSHVudCA8
b2poMTZAc3R1ZGVudC5jYW50ZXJidXJ5LmFjLm56PgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQot
I2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lLmgiCi0KLSNpbmNsdWRl
ICJSZW5kZXJTVkdSZXNvdXJjZS5oIgotI2luY2x1ZGUgIlNWR0lubGluZUZsb3dCb3guaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotUmVuZGVyU1ZHSW5saW5lOjpSZW5kZXJTVkdJbmxp
bmUoTm9kZSogbikKLSAgICA6IFJlbmRlcklubGluZShuKQotewotfQotCi1JbmxpbmVGbG93Qm94
KiBSZW5kZXJTVkdJbmxpbmU6OmNyZWF0ZUlubGluZUZsb3dCb3goKQotewotICAgIElubGluZUZs
b3dCb3gqIGJveCA9IG5ldyAocmVuZGVyQXJlbmEoKSkgU1ZHSW5saW5lRmxvd0JveCh0aGlzKTsK
LSAgICBib3gtPnNldEhhc1ZpcnR1YWxMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgcmV0dXJuIGJveDsK
LX0KLQotRmxvYXRSZWN0IFJlbmRlclNWR0lubGluZTo6b2JqZWN0Qm91bmRpbmdCb3goKSBjb25z
dAotewotICAgIGlmIChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCA9IFNWR1JlbmRlclN1cHBv
cnQ6OmZpbmRUZXh0Um9vdE9iamVjdCh0aGlzKSkKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+b2Jq
ZWN0Qm91bmRpbmdCb3goKTsKLQotICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLX0KLQotRmxvYXRS
ZWN0IFJlbmRlclNWR0lubGluZTo6c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdAotewotICAgIGlm
IChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCA9IFNWR1JlbmRlclN1cHBvcnQ6OmZpbmRUZXh0
Um9vdE9iamVjdCh0aGlzKSkKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+c3Ryb2tlQm91bmRpbmdC
b3goKTsKLQotICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLX0KLQotRmxvYXRSZWN0IFJlbmRlclNW
R0lubGluZTo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdAotewotICAgIGlm
IChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCA9IFNWR1JlbmRlclN1cHBvcnQ6OmZpbmRUZXh0
Um9vdE9iamVjdCh0aGlzKSkKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+cmVwYWludFJlY3RJbkxv
Y2FsQ29vcmRpbmF0ZXMoKTsKLQotICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLX0KLQotSW50UmVj
dCBSZW5kZXJTVkdJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKQotewotICAgIHJldHVybiBTVkdSZW5kZXJT
dXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFp
bmVyKTsKLX0KLQotdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgSW50UmVjdCYgcmVwYWludFJl
Y3QsIGJvb2wgZml4ZWQpCi17Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7Ci19Ci0K
LXZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKLXsKLSAgICBTVkdSZW5kZXJT
dXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHVzZVRy
YW5zZm9ybXMsIGZpeGVkLCB0cmFuc2Zvcm1TdGF0ZSk7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHSW5s
aW5lOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKLXsKLSAgICBjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCA9IFNWR1JlbmRlclN1cHBvcnQ6OmZpbmRUZXh0Um9vdE9i
amVjdCh0aGlzKTsKLSAgICBpZiAoIW9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRmxv
YXRSZWN0IHRleHRCb3VuZGluZ0JveCA9IG9iamVjdC0+c3Ryb2tlQm91bmRpbmdCb3goKTsKLSAg
ICBmb3IgKElubGluZUZsb3dCb3gqIGJveCA9IGZpcnN0TGluZUJveCgpOyBib3g7IGJveCA9IGJv
eC0+bmV4dExpbmVCb3goKSkKLSAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRSZWN0KHRleHRCb3VuZGluZ0JveC54KCkgKyBib3gtPngoKSwgdGV4dEJvdW5kaW5n
Qm94LnkoKSArIGJveC0+eSgpLCBib3gtPmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxvZ2ljYWxIZWln
aHQoKSkpKTsKLX0KLQotdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmRlc3Ryb3koKQotewotICAgIFNW
R1Jlc291cmNlc0NhY2hlOjpjbGllbnREZXN0cm95ZWQodGhpcyk7Ci0gICAgUmVuZGVySW5saW5l
OjpkZXN0cm95KCk7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkKLXsKLSAg
ICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQpCi0gICAgICAgIHNldE5lZWRzQm91
bmRhcmllc1VwZGF0ZSgpOwotICAgIFJlbmRlcklubGluZTo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYs
IG5ld1N0eWxlKTsKLX0KLQotdm9pZCBSZW5kZXJTVkdJbmxpbmU6OnN0eWxlRGlkQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCi17Ci0gICAg
UmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7Ci0gICAgU1ZHUmVz
b3VyY2VzQ2FjaGU6OmNsaWVudFN0eWxlQ2hhbmdlZCh0aGlzLCBkaWZmLCBzdHlsZSgpKTsKLX0K
LQotdm9pZCBSZW5kZXJTVkdJbmxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KCkKLXsKLSAgICBSZW5k
ZXJJbmxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNs
aWVudFVwZGF0ZWRGcm9tRWxlbWVudCh0aGlzLCBzdHlsZSgpKTsKLX0KLQotCi19Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmgJKHJl
dmlzaW9uIDY4ODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBXZWJLaXQgcHJvamVjdC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgT2xpdmVyIEh1
bnQgPG9qaDE2QHN0dWRlbnQuY2FudGVyYnVyeS5hYy5uej4KLSAqICAgICAgICAgICAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciBJbmMuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIFJlbmRlclNWR0lubGluZV9oCi0jZGVm
aW5lIFJlbmRlclNWR0lubGluZV9oCi0KLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlJlbmRl
cklubGluZS5oIgotCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIFJlbmRlclNWR0lubGluZSA6IHB1YmxpYyBSZW5kZXJJbmxpbmUg
ewotcHVibGljOgotICAgIFJlbmRlclNWR0lubGluZShOb2RlKik7Ci0KLSAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHSW5saW5lIjsg
fQotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbmxpbmUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
Ci0KLSAgICAvLyBDaGFwdGVyIDEwLjQgb2YgdGhlIFNWRyBTcGVjaWZpY2F0aW9uIHNheSB0aGF0
IHdlIHNob3VsZCB1c2UgdGhlCi0gICAgLy8gb2JqZWN0IGJvdW5kaW5nIGJveCBvZiB0aGUgcGFy
ZW50IHRleHQgZWxlbWVudC4KLSAgICAvLyBXZSBzZWFyY2ggZm9yIHRoZSByb290IHRleHQgZWxl
bWVudCBhbmQgdGFrZSBpdHMgYm91bmRpbmcgYm94LgotICAgIC8vIEl0IGlzIGFsc28gbmVjZXNz
YXJ5IHRvIHRha2UgdGhlIHN0cm9rZSBhbmQgcmVwYWludCByZWN0IG9mCi0gICAgLy8gdGhpcyBl
bGVtZW50LCBzaW5jZSB3ZSBuZWVkIGl0IGZvciBmaWx0ZXJzLgotICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ry
b2tlQm91bmRpbmdCb3goKSBjb25zdDsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVj
dEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0OwotCi0gICAgdmlydHVhbCBJbnRSZWN0IGNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiwgYm9vbCBmaXhlZCA9IGZh
bHNlKTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVk
LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRz
KFZlY3RvcjxGbG9hdFF1YWQ+Jik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBJbmxpbmVGbG93
Qm94KiBjcmVhdGVJbmxpbmVGbG93Qm94KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgp
OwotICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25z
dCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7Ci0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoU1ZHKQotI2VuZGlmIC8vICFSZW5kZXJTVkdUU3Bhbl9ICkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAkocmV2aXNpb24gNjg4NjcpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwx
MTEgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVj
dC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgT2xpdmVyIEh1bnQgPG9qaDE2QHN0dWRlbnQu
Y2FudGVyYnVyeS5hYy5uej4KLSAqICAgICAgICAgICAoQykgMjAwNiBBcHBsZSBDb21wdXRlciBJ
bmMuCi0gKiAgICAgICAgICAgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+Ci0gKiAgICAgICAgICAgKEMpIDIwMDggUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUmVu
ZGVyU1ZHSW5saW5lVGV4dC5oIgotCi0jaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCi0jaW5j
bHVkZSAiRmxvYXRRdWFkLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlICJS
ZW5kZXJTVkdSb290LmgiCi0jaW5jbHVkZSAiU1ZHSW5saW5lVGV4dEJveC5oIgotI2luY2x1ZGUg
IlNWR1Jvb3RJbmxpbmVCb3guaCIKLSNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1SZW5kZXJTVkdJbmxpbmVUZXh0OjpSZW5kZXJTVkdJbmxpbmVU
ZXh0KE5vZGUqIG4sIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3RyKSAKLSAgICA6IFJlbmRlclRl
eHQobiwgc3RyKQotewotfQotCi12b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCi17
Ci0gICAgUmVuZGVyVGV4dDo6c3R5bGVEaWRDaGFuZ2UoZGlmZiwgb2xkU3R5bGUpOwotICAgIAot
ICAgIC8vIEZJWE1FOiBTaG91bGQgb3B0aW1pemUgdGhpcy4KLSAgICAvLyBTVkcgdGV4dCBpcyBh
bHdheXMgdHJhbnNmb3JtZWQuCi0gICAgaWYgKFJlZlB0cjxTdHJpbmdJbXBsPiB0ZXh0VG9UcmFu
c2Zvcm0gPSBvcmlnaW5hbFRleHQoKSkKLSAgICAgICAgc2V0VGV4dCh0ZXh0VG9UcmFuc2Zvcm0u
cmVsZWFzZSgpLCB0cnVlKTsKLX0KLQotSW5saW5lVGV4dEJveCogUmVuZGVyU1ZHSW5saW5lVGV4
dDo6Y3JlYXRlVGV4dEJveCgpCi17Ci0gICAgSW5saW5lVGV4dEJveCogYm94ID0gbmV3IChyZW5k
ZXJBcmVuYSgpKSBTVkdJbmxpbmVUZXh0Qm94KHRoaXMpOwotICAgIGJveC0+c2V0SGFzVmlydHVh
bExvZ2ljYWxIZWlnaHQoKTsKLSAgICByZXR1cm4gYm94OwotfQotCi1JbnRSZWN0IFJlbmRlclNW
R0lubGluZVRleHQ6OmxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIGludCwgaW50KikKLXsKLSAg
ICByZXR1cm4gSW50UmVjdCgpOwotfQotCi1JbnRSZWN0IFJlbmRlclNWR0lubGluZVRleHQ6Omxp
bmVzQm91bmRpbmdCb3goKSBjb25zdAotewotICAgIEludFJlY3QgYm91bmRpbmdCb3g7Ci0gICAg
Zm9yIChJbmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBib3gt
Pm5leHRUZXh0Qm94KCkpCi0gICAgICAgIGJvdW5kaW5nQm94LnVuaXRlKGJveC0+Y2FsY3VsYXRl
Qm91bmRhcmllcygpKTsKLSAgICByZXR1cm4gYm91bmRpbmdCb3g7Ci19Ci0KLWJvb2wgUmVuZGVy
U1ZHSW5saW5lVGV4dDo6Y2hhcmFjdGVyU3RhcnRzTmV3VGV4dENodW5rKGludCBwb3NpdGlvbikg
Y29uc3QKLXsKLSAgICBBU1NFUlQobV9hdHRyaWJ1dGVzLnhWYWx1ZXMoKS5zaXplKCkgPT0gdGV4
dExlbmd0aCgpKTsKLSAgICBBU1NFUlQobV9hdHRyaWJ1dGVzLnlWYWx1ZXMoKS5zaXplKCkgPT0g
dGV4dExlbmd0aCgpKTsKLSAgICBBU1NFUlQocG9zaXRpb24gPj0gMCk7Ci0gICAgQVNTRVJUKHBv
c2l0aW9uIDwgc3RhdGljX2Nhc3Q8aW50Pih0ZXh0TGVuZ3RoKCkpKTsKLQotICAgIGludCBjdXJy
ZW50UG9zaXRpb24gPSAwOwotICAgIHVuc2lnbmVkIHNpemUgPSBtX2F0dHJpYnV0ZXMuY2hhcmFj
dGVyRGF0YVZhbHVlcygpLnNpemUoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzOjpDaGFyYWN0
ZXJEYXRhJiBkYXRhID0gbV9hdHRyaWJ1dGVzLmNoYXJhY3RlckRhdGFWYWx1ZXMoKS5hdChpKTsK
LQotICAgICAgICAvLyBXZSBmb3VuZCB0aGUgZGVzaXJlZCBjaGFyYWN0ZXIuCi0gICAgICAgIGlm
IChjdXJyZW50UG9zaXRpb24gPT0gcG9zaXRpb24pIHsKLSAgICAgICAgICAgIGlmIChpc1ZlcnRp
Y2FsV3JpdGluZ01vZGUoc3R5bGUoKS0+c3ZnU3R5bGUoKSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIG1fYXR0cmlidXRlcy55VmFsdWVzKCkuYXQocG9zaXRpb24pICE9IFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzOjplbXB0eVZhbHVlKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBtX2F0dHJpYnV0
ZXMueFZhbHVlcygpLmF0KHBvc2l0aW9uKSAhPSBTVkdUZXh0TGF5b3V0QXR0cmlidXRlczo6ZW1w
dHlWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgY3VycmVudFBvc2l0aW9uICs9IGRhdGEu
c3BhbnNDaGFyYWN0ZXJzOwotICAgICAgICBpZiAoY3VycmVudFBvc2l0aW9uID4gcG9zaXRpb24p
Ci0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICAvLyBUaGUgZGVzaXJlZCBwb3NpdGlv
biBpcyBhdmFpbGFibGUgaW4gdGhlIHgveSBsaXN0LCBidXQgbm90IGluIHRoZSBjaGFyYWN0ZXIg
ZGF0YSB2YWx1ZXMgbGlzdC4KLSAgICAvLyBUaGF0IG1lYW5zIHRoZSBwcmV2aW91cyBjaGFyYWN0
ZXIgZGF0YSBkZXNjcmliZWQgYSBzaW5nbGUgZ2x5cGgsIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUg
dW5pY29kZSBjaGFyYWN0ZXJzLgotICAgIC8vIFRoZSBjb25zZXF1ZW5jZSBpcyB0aGF0IHRoZSBk
ZXNpcmVkIGNoYXJhY3RlciBkb2VzIG5vdCBkZWZpbmUgYSBuZXcgYWJzb2x1dGUgeC95IHBvc2l0
aW9uLCBldmVuIGlmIHByZXNlbnQgaW4gdGhlIHgveSB0ZXN0LgotICAgIC8vIFRoaXMgY29kZSBp
cyB0ZXN0ZWQgYnkgc3ZnL1czQy1TVkctMS4xL3RleHQtdGV4dC0wNi10LnN2ZyAoYW5kIGRlc2Ny
aWJlZCBpbiBkZXRhaWwsIHdoeSB0aGlzIGluZmx1ZW5jZXMgY2h1bmsgZGV0ZWN0aW9uKS4KLSAg
ICBBU1NFUlQoY3VycmVudFBvc2l0aW9uID4gcG9zaXRpb24pOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR0lubGluZVRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTVkdJbmxpbmVUZXh0LmgJKHJldmlzaW9uIDY4ODY3KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY0ICswLDAgQEAK
LS8qCi0gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QuCi0gKgotICog
Q29weXJpZ2h0IChDKSAyMDA2IE9saXZlciBIdW50IDxvamgxNkBzdHVkZW50LmNhbnRlcmJ1cnku
YWMubno+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogICAgICAgICAgIChDKSAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotCi0jaWZuZGVmIFJlbmRlclNWR0lubGluZVRleHRfaAotI2RlZmluZSBSZW5kZXJTVkdJbmxp
bmVUZXh0X2gKLQotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgotI2lu
Y2x1ZGUgIlNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgUmVuZGVyU1ZHSW5saW5lVGV4dCA6IHB1YmxpYyBSZW5kZXJUZXh0IHsKLXB1Ymxp
YzoKLSAgICBSZW5kZXJTVkdJbmxpbmVUZXh0KE5vZGUqLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+
KTsKLQotICAgIGJvb2wgY2hhcmFjdGVyU3RhcnRzTmV3VGV4dENodW5rKGludCBwb3NpdGlvbikg
Y29uc3Q7Ci0gICAgdm9pZCBzdG9yZUxheW91dEF0dHJpYnV0ZXMoY29uc3QgU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpIHsgbV9hdHRyaWJ1dGVzID0gYXR0cmlidXRlczsgfQot
Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsg
cmV0dXJuICJSZW5kZXJTVkdJbmxpbmVUZXh0IjsgfQotCi0gICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKTsKLQotICAgIC8v
IEZJWE1FOiBXZSBuZWVkIG9iamVjdEJvdW5kaW5nQm94IGZvciBEUlQgcmVzdWx0cyBhbmQgZmls
dGVycyBhdCB0aGUgbW9tZW50LgotICAgIC8vIFRoaXMgc2hvdWxkIGJlIGZpeGVkIHRvIGdpdmUg
YmFjayB0aGUgb2JqZWN0Qm91bmRpbmdCb3ggb2YgdGhlIHRleHQgcm9vdC4KLSAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgp
OyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU1ZHSW5saW5lVGV4dCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KLQotICAgIHZpcnR1YWwgSW50UmVjdCBsb2NhbENhcmV0UmVjdChJbmxpbmVCb3gq
LCBpbnQgY2FyZXRPZmZzZXQsIGludCogZXh0cmFXaWR0aFRvRW5kT2ZMaW5lID0gMCk7Ci0gICAg
dmlydHVhbCBJbnRSZWN0IGxpbmVzQm91bmRpbmdCb3goKSBjb25zdDsKLSAgICB2aXJ0dWFsIElu
bGluZVRleHRCb3gqIGNyZWF0ZVRleHRCb3goKTsKLQotICAgIFNWR1RleHRMYXlvdXRBdHRyaWJ1
dGVzIG1fYXR0cmlidXRlczsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShTVkcpCi0KLSNl
bmRpZiAvLyAhUmVuZGVyU1ZHSW5saW5lVGV4dF9oCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTVkdUU3Bhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U1ZHVFNwYW4uY3BwCShyZXZpc2lvbiA2ODg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNWR1RTcGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi0vKgotICogVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0LgotICoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBPbGl2ZXIgSHVudCA8b2poMTZAc3R1ZGVudC5jYW50ZXJidXJ5LmFjLm56PgotICog
ICAgICAgICAgIChDKSAyMDA2IEFwcGxlIENvbXB1dGVyIEluYy4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAot
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUmVuZGVyU1ZHVFNwYW4uaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZW5kZXJTVkdUU3Bhbjo6UmVuZGVyU1ZHVFNwYW4oTm9k
ZSogbikKLSAgICA6IFJlbmRlclNWR0lubGluZShuKQotewotfQotCi19Ci0KLSNlbmRpZiAvLyBF
TkFCTEUoU1ZHKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVFNwYW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUU3Bhbi5oCShyZXZpc2lvbiA2
ODg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RTcGFuLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBPbGl2ZXIgSHVu
dCA8b2poMTZAc3R1ZGVudC5jYW50ZXJidXJ5LmFjLm56PgotICogICAgICAgICAgIChDKSAyMDA2
IEFwcGxlIENvbXB1dGVyIEluYy4KLSAqICAgICAgICAgICAoQykgMjAwOSBHb29nbGUgSW5jLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8K
LQotI2lmbmRlZiBSZW5kZXJTVkdUU3Bhbl9oCi0jZGVmaW5lIFJlbmRlclNWR1RTcGFuX2gKLQot
I2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLWNsYXNzIFJlbmRlclNWR1RTcGFuIDogcHVibGljIFJlbmRlclNWR0lubGlu
ZSB7Ci1wdWJsaWM6Ci0gICAgUmVuZGVyU1ZHVFNwYW4oTm9kZSopOwotICAgIHZpcnR1YWwgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdUU3BhbiI7IH0K
LX07Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1ZHKQotI2VuZGlmIC8vICFSZW5kZXJTVkdUU3Bh
bl9oCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gNjg4Njcp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSwyMTcgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQg
cHJvamVjdC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
LSAqICAgICAgICAgICAgICAgMjAwNiBBbGV4YW5kZXIgS2VsbGV0dCA8bHlwYW5vdkBrZGUub3Jn
PgotICogICAgICAgICAgICAgICAyMDA2IE9saXZlciBIdW50IDxvamgxNkBzdHVkZW50LmNhbnRl
cmJ1cnkuYWMubno+Ci0gKiAgICAgICAgICAgICAgIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiAgICAgICAgICAgICAgIDIwMDggUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KLSAqICAgICAgICAgICAgICAgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0
Lm9yZz4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
KgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVk
ZSAiUmVuZGVyU1ZHVGV4dC5oIgotCi0jaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCi0jaW5j
bHVkZSAiRmxvYXRRdWFkLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVk
ZSAiSGl0VGVzdFJlcXVlc3QuaCIKLSNpbmNsdWRlICJQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCIK
LSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgotI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgi
Ci0jaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aExpc3QuaCIK
LSNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCi0jaW5jbHVkZSAiU1ZHUm9vdElubGluZUJv
eC5oIgotI2luY2x1ZGUgIlNWR1RleHRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHVGV4dExheW91
dEJ1aWxkZXIuaCIKLSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCi0jaW5jbHVkZSAiU1ZH
VVJJUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKLSNpbmNsdWRlICJU
cmFuc2Zvcm1TdGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlbmRlclNWR1RleHQ6
OlJlbmRlclNWR1RleHQoU1ZHVGV4dEVsZW1lbnQqIG5vZGUpIAotICAgIDogUmVuZGVyU1ZHQmxv
Y2sobm9kZSkKLSAgICAsIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUodHJ1ZSkKLXsKLX0KLQotSW50
UmVjdCBSZW5kZXJTVkdUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJC
b3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikKLXsKLSAgICByZXR1cm4gU1ZHUmVuZGVy
U3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRh
aW5lcik7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiByZXBhaW50UmVj
dCwgYm9vbCBmaXhlZCkKLXsKLSAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlUmVjdEZvclJl
cGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKLX0KLQot
dm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKLXsKLSAgICBTVkdSZW5kZXJTdXBw
b3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1
c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHVGV4dDo6
bGF5b3V0KCkKLXsKLSAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7Ci0gICAgTGF5b3V0UmVwYWlu
dGVyIHJlcGFpbnRlcigqdGhpcywgY2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkpOwotCi0g
ICAgYm9vbCB1cGRhdGVDYWNoZWRCb3VuZGFyaWVzSW5QYXJlbnRzID0gZmFsc2U7Ci0gICAgaWYg
KG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUpIHsKLSAgICAgICAgU1ZHVGV4dEVsZW1lbnQqIHRleHQg
PSBzdGF0aWNfY2FzdDxTVkdUZXh0RWxlbWVudCo+KG5vZGUoKSk7Ci0gICAgICAgIG1fbG9jYWxU
cmFuc2Zvcm0gPSB0ZXh0LT5hbmltYXRlZExvY2FsVHJhbnNmb3JtKCk7Ci0gICAgICAgIG1fbmVl
ZHNUcmFuc2Zvcm1VcGRhdGUgPSBmYWxzZTsKLSAgICAgICAgdXBkYXRlQ2FjaGVkQm91bmRhcmll
c0luUGFyZW50cyA9IHRydWU7Ci0gICAgfQotCi0gICAgU1ZHVGV4dExheW91dEJ1aWxkZXIgbGF5
b3V0QnVpbGRlcjsKLSAgICBsYXlvdXRCdWlsZGVyLmJ1aWxkTGF5b3V0QXR0cmlidXRlc0ZvclRl
eHRTdWJ0cmVlKHRoaXMpOwotCi0gICAgLy8gUmVkdWNlZCB2ZXJzaW9uIG9mIFJlbmRlckJsb2Nr
OjpsYXlvdXRCbG9jaygpLCB3aGljaCBvbmx5IHRha2VzIGNhcmUgb2YgU1ZHIHRleHQuCi0gICAg
Ly8gQWxsIGlmIGJyYW5jaGVzIHRoYXQgY291bGQgY2F1c2UgZWFybHkgZXhpdCBpbiBSZW5kZXJC
bG9ja3MgbGF5b3V0QmxvY2soKSBtZXRob2QgYXJlIHR1cm5lZCBpbnRvIGFzc2VydGlvbnMuCi0g
ICAgQVNTRVJUKCFpc0lubGluZSgpKTsKLSAgICBBU1NFUlQoIWxheW91dE9ubHlQb3NpdGlvbmVk
T2JqZWN0cygpKTsKLSAgICBBU1NFUlQoIXNjcm9sbHNPdmVyZmxvdygpKTsKLSAgICBBU1NFUlQo
IWhhc0NvbnRyb2xDbGlwKCkpOwotICAgIEFTU0VSVCghaGFzQ29sdW1ucygpKTsKLSAgICBBU1NF
UlQoIXBvc2l0aW9uZWRPYmplY3RzKCkpOwotICAgIEFTU0VSVCghbV9vdmVyZmxvdyk7Ci0gICAg
QVNTRVJUKCFpc0Fub255bW91c0Jsb2NrKCkpOwotCi0gICAgaWYgKCFmaXJzdENoaWxkKCkpCi0g
ICAgICAgIHNldENoaWxkcmVuSW5saW5lKHRydWUpOwotCi0gICAgLy8gRklYTUU6IFdlIG5lZWQg
dG8gZmluZCBhIHdheSB0byBvbmx5IGxheW91dCB0aGUgY2hpbGQgYm94ZXMsIGlmIG5lZWRlZC4K
LSAgICBGbG9hdFJlY3Qgb2xkQm91bmRhcmllcyA9IG9iamVjdEJvdW5kaW5nQm94KCk7Ci0gICAg
QVNTRVJUKGNoaWxkcmVuSW5saW5lKCkpOwotICAgIGZvcmNlTGF5b3V0SW5saW5lQ2hpbGRyZW4o
KTsKLQotICAgIGlmICghdXBkYXRlQ2FjaGVkQm91bmRhcmllc0luUGFyZW50cykKLSAgICAgICAg
dXBkYXRlQ2FjaGVkQm91bmRhcmllc0luUGFyZW50cyA9IG9sZEJvdW5kYXJpZXMgIT0gb2JqZWN0
Qm91bmRpbmdCb3goKTsKLQotICAgIC8vIEludmFsaWRhdGUgYWxsIHJlc291cmNlcyBvZiB0aGlz
IGNsaWVudCBpZiBvdXIgbGF5b3V0IGNoYW5nZWQuCi0gICAgaWYgKG1fZXZlckhhZExheW91dCAm
JiBzZWxmTmVlZHNMYXlvdXQoKSkKLSAgICAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudExh
eW91dENoYW5nZWQodGhpcyk7Ci0KLSAgICAvLyBJZiBvdXIgYm91bmRzIGNoYW5nZWQsIG5vdGlm
eSB0aGUgcGFyZW50cy4KLSAgICBpZiAodXBkYXRlQ2FjaGVkQm91bmRhcmllc0luUGFyZW50cykK
LSAgICAgICAgUmVuZGVyU1ZHQmxvY2s6OnNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpOwotCi0g
ICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOwotICAgIHNldE5lZWRzTGF5b3V0KGZh
bHNlKTsKLX0KLQotUm9vdElubGluZUJveCogUmVuZGVyU1ZHVGV4dDo6Y3JlYXRlUm9vdElubGlu
ZUJveCgpIAotewotICAgIFJvb3RJbmxpbmVCb3gqIGJveCA9IG5ldyAocmVuZGVyQXJlbmEoKSkg
U1ZHUm9vdElubGluZUJveCh0aGlzKTsKLSAgICBib3gtPnNldEhhc1ZpcnR1YWxMb2dpY2FsSGVp
Z2h0KCk7Ci0gICAgcmV0dXJuIGJveDsKLX0KLQotYm9vbCBSZW5kZXJTVkdUZXh0Ojpub2RlQXRG
bG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24gaGl0
VGVzdEFjdGlvbikKLXsKLSAgICBQb2ludGVyRXZlbnRzSGl0UnVsZXMgaGl0UnVsZXMoUG9pbnRl
ckV2ZW50c0hpdFJ1bGVzOjpTVkdfVEVYVF9ISVRURVNUSU5HLCByZXF1ZXN0LCBzdHlsZSgpLT5w
b2ludGVyRXZlbnRzKCkpOwotICAgIGJvb2wgaXNWaXNpYmxlID0gKHN0eWxlKCktPnZpc2liaWxp
dHkoKSA9PSBWSVNJQkxFKTsKLSAgICBpZiAoaXNWaXNpYmxlIHx8ICFoaXRSdWxlcy5yZXF1aXJl
VmlzaWJsZSkgewotICAgICAgICBpZiAoKGhpdFJ1bGVzLmNhbkhpdFN0cm9rZSAmJiAoc3R5bGUo
KS0+c3ZnU3R5bGUoKS0+aGFzU3Ryb2tlKCkgfHwgIWhpdFJ1bGVzLnJlcXVpcmVTdHJva2UpKQot
ICAgICAgICAgICAgfHwgKGhpdFJ1bGVzLmNhbkhpdEZpbGwgJiYgKHN0eWxlKCktPnN2Z1N0eWxl
KCktPmhhc0ZpbGwoKSB8fCAhaGl0UnVsZXMucmVxdWlyZUZpbGwpKSkgewotICAgICAgICAgICAg
RmxvYXRQb2ludCBsb2NhbFBvaW50ID0gbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpLmludmVyc2Uo
KS5tYXBQb2ludChwb2ludEluUGFyZW50KTsKLQotICAgICAgICAgICAgaWYgKCFTVkdSZW5kZXJT
dXBwb3J0Ojpwb2ludEluQ2xpcHBpbmdBcmVhKHRoaXMsIGxvY2FsUG9pbnQpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgCi0KLSAgICAgICAgICAgIHJldHVybiBSZW5kZXJC
bG9jazo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCAoaW50KWxvY2FsUG9pbnQueCgpLCAo
aW50KWxvY2FsUG9pbnQueSgpLCAwLCAwLCBoaXRUZXN0QWN0aW9uKTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZW5kZXJTVkdUZXh0Ojpub2RlQXRQ
b2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBpbnQsIGludCwgaW50
LCBpbnQsIEhpdFRlc3RBY3Rpb24pCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFJlbmRlclNWR1RleHQ6OmFic29sdXRlUXVhZHMoVmVj
dG9yPEZsb2F0UXVhZD4mIHF1YWRzKQotewotICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1
dGVRdWFkKHN0cm9rZUJvdW5kaW5nQm94KCkpKTsKLX0KLQotdm9pZCBSZW5kZXJTVkdUZXh0Ojpw
YWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50LCBpbnQpCi17Ci0gICAgaWYgKHBhaW50SW5m
by5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
IChwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZUZvcmVncm91bmQKLSAgICAgJiYgcGFpbnRJ
bmZvLnBoYXNlICE9IFBhaW50UGhhc2VTZWxmT3V0bGluZQotICAgICAmJiBwYWludEluZm8ucGhh
c2UgIT0gUGFpbnRQaGFzZVNlbGVjdGlvbikKLSAgICAgICAgIHJldHVybjsKLQotICAgIFBhaW50
SW5mbyBibG9ja0luZm8ocGFpbnRJbmZvKTsKLSAgICBibG9ja0luZm8uY29udGV4dC0+c2F2ZSgp
OwotICAgIGJsb2NrSW5mby5hcHBseVRyYW5zZm9ybShsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkp
OwotICAgIFJlbmRlckJsb2NrOjpwYWludChibG9ja0luZm8sIDAsIDApOwotICAgIGJsb2NrSW5m
by5jb250ZXh0LT5yZXN0b3JlKCk7Ci19Ci0KLUZsb2F0UmVjdCBSZW5kZXJTVkdUZXh0OjpzdHJv
a2VCb3VuZGluZ0JveCgpIGNvbnN0Ci17Ci0gICAgRmxvYXRSZWN0IHN0cm9rZUJvdW5kYXJpZXMg
PSBvYmplY3RCb3VuZGluZ0JveCgpOwotICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdTdHls
ZSA9IHN0eWxlKCktPnN2Z1N0eWxlKCk7Ci0gICAgaWYgKCFzdmdTdHlsZS0+aGFzU3Ryb2tlKCkp
Ci0gICAgICAgIHJldHVybiBzdHJva2VCb3VuZGFyaWVzOwotCi0gICAgQVNTRVJUKG5vZGUoKSk7
Ci0gICAgQVNTRVJUKG5vZGUoKS0+aXNTVkdFbGVtZW50KCkpOwotICAgIHN0cm9rZUJvdW5kYXJp
ZXMuaW5mbGF0ZShzdmdTdHlsZS0+c3Ryb2tlV2lkdGgoKS52YWx1ZShzdGF0aWNfY2FzdDxTVkdF
bGVtZW50Kj4obm9kZSgpKSkpOwotICAgIHJldHVybiBzdHJva2VCb3VuZGFyaWVzOwotfQotCi1G
bG9hdFJlY3QgUmVuZGVyU1ZHVGV4dDo6cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBj
b25zdAotewotICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IHN0cm9rZUJvdW5kaW5nQm94KCk7
Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2Vz
KHRoaXMsIHJlcGFpbnRSZWN0KTsKLQotICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiB0ZXh0U2hh
ZG93ID0gc3R5bGUoKS0+dGV4dFNoYWRvdygpKQotICAgICAgICB0ZXh0U2hhZG93LT5hZGp1c3RS
ZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKLQotICAgIHJldHVybiByZXBhaW50UmVjdDsKLX0K
LQotLy8gRml4IGZvciA8cmRhcjovL3Byb2JsZW0vODA0ODg3NT4uIFdlIHNob3VsZCBub3QgcmVu
ZGVyIDpmaXJzdC1saW5lIENTUyBTdHlsZQotLy8gaW4gYSBTVkcgdGV4dCBlbGVtZW50IGNvbnRl
eHQuCi1SZW5kZXJCbG9jayogUmVuZGVyU1ZHVGV4dDo6Zmlyc3RMaW5lQmxvY2soKSBjb25zdAot
ewotICAgIHJldHVybiAwOwotfQotCi0vLyBGaXggZm9yIDxyZGFyOi8vcHJvYmxlbS84MDQ4ODc1
Pi4gV2Ugc2hvdWxkIG5vdCByZW5kZXIgOmZpcnN0LWxldHRlciBDU1MgU3R5bGUKLS8vIGluIGEg
U1ZHIHRleHQgZWxlbWVudCBjb250ZXh0Lgotdm9pZCBSZW5kZXJTVkdUZXh0Ojp1cGRhdGVGaXJz
dExldHRlcigpCi17Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZpc2lvbiA2ODg2NykKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNWR1RleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3OCArMCwwIEBACi0vKgot
ICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0LgotICoKLSAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgotICogICAgICAgICAgIChDKSAyMDA3
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBSZW5k
ZXJTVkdUZXh0X2gKLSNkZWZpbmUgUmVuZGVyU1ZHVGV4dF9oCi0KLSNpZiBFTkFCTEUoU1ZHKQot
Ci0jaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHQmxvY2su
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTVkdUZXh0RWxlbWVudDsKLQotY2xh
c3MgUmVuZGVyU1ZHVGV4dCA6IHB1YmxpYyBSZW5kZXJTVkdCbG9jayB7Ci1wdWJsaWM6Ci0gICAg
UmVuZGVyU1ZHVGV4dChTVkdUZXh0RWxlbWVudCogbm9kZSk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVl
OyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMo
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHVGV4dCI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNT
VkdUZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5KTsKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgaW50IHgsIGludCB5LCBp
bnQgdHgsIGludCB0eSwgSGl0VGVzdEFjdGlvbik7Ci0gICAgdmlydHVhbCBib29sIG5vZGVBdEZs
b2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbik7Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGxheW91dCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mKTsKLQotICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgSW50UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSk7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0OwotCi0gICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBj
b25zdCB7IHJldHVybiBmcmFtZVJlY3QoKTsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9r
ZUJvdW5kaW5nQm94KCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgbG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zv
cm07IH0KLSAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KLSAgICB2aXJ0dWFsIFJvb3RJbmxpbmVCb3gq
IGNyZWF0ZVJvb3RJbmxpbmVCb3goKTsKLQotICAgIHZpcnR1YWwgUmVuZGVyQmxvY2sqIGZpcnN0
TGluZUJsb2NrKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZpcnN0TGV0dGVyKCk7
Ci0KLSAgICBib29sIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgOiAxOwotICAgIEFmZmluZVRyYW5z
Zm9ybSBtX2xvY2FsVHJhbnNmb3JtOwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykK
LSNlbmRpZgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBhdGguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1RleHRQYXRoLmNwcAkocmV2
aXNpb24gNjg4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBXZWJLaXQgcHJvamVjdC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0g
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlJlbmRlclNWR1RleHRQYXRoLmgiCi0KLSNp
bmNsdWRlICJGbG9hdFF1YWQuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUg
IlNWR0lubGluZVRleHRCb3guaCIKLSNpbmNsdWRlICJTVkdQYXRoRWxlbWVudC5oIgotI2luY2x1
ZGUgIlNWR1Jvb3RJbmxpbmVCb3guaCIKLSNpbmNsdWRlICJTVkdUZXh0UGF0aEVsZW1lbnQuaCIK
LSNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
UmVuZGVyU1ZHVGV4dFBhdGg6OlJlbmRlclNWR1RleHRQYXRoKE5vZGUqIG4pCi0gICAgOiBSZW5k
ZXJTVkdJbmxpbmUobikKLSAgICAsIG1fc3RhcnRPZmZzZXQoMC4wZikKLSAgICAsIG1fZXhhY3RB
bGlnbm1lbnQodHJ1ZSkKLSAgICAsIG1fc3RyZXRjaE1ldGhvZChmYWxzZSkKLXsKLX0KLQotUGF0
aCBSZW5kZXJTVkdUZXh0UGF0aDo6bGF5b3V0UGF0aCgpIGNvbnN0Ci17Ci0gICAgU1ZHVGV4dFBh
dGhFbGVtZW50KiB0ZXh0UGF0aEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdUZXh0UGF0aEVsZW1l
bnQqPihub2RlKCkpOwotICAgICAgICBTdHJpbmcgcGF0aElkID0gU1ZHVVJJUmVmZXJlbmNlOjpn
ZXRUYXJnZXQodGV4dFBhdGhFbGVtZW50LT5ocmVmKCkpOwotICAgIEVsZW1lbnQqIHRhcmdldEVs
ZW1lbnQgPSB0ZXh0UGF0aEVsZW1lbnQtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKHBhdGhJ
ZCk7ICAgIAotICAgIGlmICghdGFyZ2V0RWxlbWVudCB8fCAhdGFyZ2V0RWxlbWVudC0+aGFzVGFn
TmFtZShTVkdOYW1lczo6cGF0aFRhZykpCi0gICAgICAgIHJldHVybiBQYXRoKCk7Ci0gICAgCi0g
ICAgU1ZHUGF0aEVsZW1lbnQqIHBhdGhFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aEVsZW1l
bnQqPih0YXJnZXRFbGVtZW50KTsKLSAgICAKLSAgICBQYXRoIHBhdGhEYXRhID0gcGF0aEVsZW1l
bnQtPnRvUGF0aERhdGEoKTsKLSAgICAvLyBTcGVjOiAgVGhlIHRyYW5zZm9ybSBhdHRyaWJ1dGUg
b24gdGhlIHJlZmVyZW5jZWQgJ3BhdGgnIGVsZW1lbnQgcmVwcmVzZW50cyBhCi0gICAgLy8gc3Vw
cGxlbWVudGFsIHRyYW5zZm9ybWF0aW9uIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHVzZXIgY29v
cmRpbmF0ZSBzeXN0ZW0gZm9yCi0gICAgLy8gdGhlIGN1cnJlbnQgJ3RleHQnIGVsZW1lbnQsIGlu
Y2x1ZGluZyBhbnkgYWRqdXN0bWVudHMgdG8gdGhlIGN1cnJlbnQgdXNlciBjb29yZGluYXRlCi0g
ICAgLy8gc3lzdGVtIGR1ZSB0byBhIHBvc3NpYmxlIHRyYW5zZm9ybSBhdHRyaWJ1dGUgb24gdGhl
IGN1cnJlbnQgJ3RleHQnIGVsZW1lbnQuCi0gICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
L3RleHQuaHRtbCNUZXh0UGF0aEVsZW1lbnQKLSAgICBwYXRoRGF0YS50cmFuc2Zvcm0ocGF0aEVs
ZW1lbnQtPmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKSk7Ci0gICAgcmV0dXJuIHBhdGhEYXRhOwot
fQotCi1mbG9hdCBSZW5kZXJTVkdUZXh0UGF0aDo6c3RhcnRPZmZzZXQoKSBjb25zdAotewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxTVkdUZXh0UGF0aEVsZW1lbnQqPihub2RlKCkpLT5zdGFydE9m
ZnNldCgpLnZhbHVlQXNQZXJjZW50YWdlKCk7Ci19Ci0KLWJvb2wgUmVuZGVyU1ZHVGV4dFBhdGg6
OmV4YWN0QWxpZ25tZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHVGV4
dFBhdGhFbGVtZW50Kj4obm9kZSgpKS0+c3BhY2luZygpID09IFNWR19URVhUUEFUSF9TUEFDSU5H
VFlQRV9FWEFDVDsKLX0KLQotYm9vbCBSZW5kZXJTVkdUZXh0UGF0aDo6c3RyZXRjaE1ldGhvZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1RleHRQYXRoRWxlbWVudCo+KG5v
ZGUoKSktPm1ldGhvZCgpID09IFNWR19URVhUUEFUSF9NRVRIT0RUWVBFX1NUUkVUQ0g7Ci19Ci0K
LX0KLQotI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdUZXh0UGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNW
R1RleHRQYXRoLmgJKHJldmlzaW9uIDY4ODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U1ZHVGV4dFBhdGguaAkod29ya2luZyBjb3B5KQpAQCAtMSw2NiArMCwwIEBACi0vKgotICogVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0LgotICoKLSAqIENvcHlyaWdodCAo
QykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVm
IFJlbmRlclNWR1RleHRQYXRoX2gKLSNkZWZpbmUgUmVuZGVyU1ZHVGV4dFBhdGhfaAotCi0jaWYg
RU5BQkxFKFNWRykKLSNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmUuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBSZW5kZXJTVkdUZXh0UGF0aCA6IHB1YmxpYyBSZW5kZXJTVkdJbmxp
bmUgewotcHVibGljOgotICAgIFJlbmRlclNWR1RleHRQYXRoKE5vZGUqKTsKLQotICAgIFBhdGgg
bGF5b3V0UGF0aCgpIGNvbnN0OwotICAgIGZsb2F0IHN0YXJ0T2Zmc2V0KCkgY29uc3Q7Ci0gICAg
Ym9vbCBleGFjdEFsaWdubWVudCgpIGNvbnN0OwotICAgIGJvb2wgc3RyZXRjaE1ldGhvZCgpIGNv
bnN0OwotCi0gICAgdmlydHVhbCBib29sIGlzU1ZHVGV4dFBhdGgoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkg
Y29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1RleHRQYXRoIjsgfQotCi0gICAgZmxvYXQgbV9zdGFy
dE9mZnNldDsKLQotICAgIGJvb2wgbV9leGFjdEFsaWdubWVudCA6IDE7Ci0gICAgYm9vbCBtX3N0
cmV0Y2hNZXRob2QgOiAxOwotCi0gICAgUGF0aCBtX2xheW91dFBhdGg7Ci19OwotCi1pbmxpbmUg
UmVuZGVyU1ZHVGV4dFBhdGgqIHRvUmVuZGVyU1ZHVGV4dFBhdGgoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCi17IAotICAgIEFTU0VSVCghb2JqZWN0IHx8ICFzdHJjbXAob2JqZWN0LT5yZW5kZXJOYW1l
KCksICJSZW5kZXJTVkdUZXh0UGF0aCIpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVy
U1ZHVGV4dFBhdGgqPihvYmplY3QpOwotfQotCi0vLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRv
aW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCi12b2lkIHRvUmVuZGVyU1ZHVGV4dFBhdGgoY29uc3Qg
UmVuZGVyU1ZHVGV4dFBhdGgqKTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKLSNlbmRp
ZiAvLyBSZW5kZXJTVkdUZXh0UGF0aF9oCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxp
bmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVG
bG93Qm94LmNwcAkocmV2aXNpb24gNjg4NjcpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxp
bmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2IE9saXZlciBIdW50IDxvamgxNkBzdHVkZW50LmNhbnRlcmJ1cnkuYWMu
bno+Ci0gKiAgICAgICAgICAgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIgSW5jLgotICogICAgICAg
ICAgIChDKSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNWR0lubGluZUZs
b3dCb3guaCIKLQotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
Ci0jaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXZvaWQgU1ZHSW5saW5lRmxvd0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCwg
aW50KQotewotICAgIEFTU0VSVChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91
bmQgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb24pOwotICAgIEFTU0VS
VCghcGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSk7Ci0KLSAgICBSZW5kZXJP
YmplY3QqIGJveFJlbmRlcmVyID0gcmVuZGVyZXIoKTsKLSAgICBBU1NFUlQoYm94UmVuZGVyZXIp
OwotCi0gICAgUGFpbnRJbmZvIGNoaWxkUGFpbnRJbmZvKHBhaW50SW5mbyk7Ci0gICAgY2hpbGRQ
YWludEluZm8uY29udGV4dC0+c2F2ZSgpOwotCi0gICAgaWYgKFNWR1JlbmRlclN1cHBvcnQ6OnBy
ZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoYm94UmVuZGVyZXIsIGNoaWxkUGFpbnRJbmZvKSkgewot
ICAgICAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkpCi0gICAgICAgICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQ
YWludEluZm8sIDAsIDApOwotICAgIH0KLQotICAgIFNWR1JlbmRlclN1cHBvcnQ6OmZpbmlzaFJl
bmRlclNWR0NvbnRlbnQoYm94UmVuZGVyZXIsIGNoaWxkUGFpbnRJbmZvLCBwYWludEluZm8uY29u
dGV4dCk7Ci0gICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+cmVzdG9yZSgpOwotfQotCi1JbnRS
ZWN0IFNWR0lubGluZUZsb3dCb3g6OmNhbGN1bGF0ZUJvdW5kYXJpZXMoKSBjb25zdAotewotICAg
IEludFJlY3QgY2hpbGRSZWN0OwotICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkKLSAgICAgICAgY2hpbGRS
ZWN0LnVuaXRlKGNoaWxkLT5jYWxjdWxhdGVCb3VuZGFyaWVzKCkpOwotICAgIHJldHVybiBjaGls
ZFJlY3Q7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShT
VkcpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVGbG93Qm94LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5lRmxvd0JveC5oCShyZXZpc2lvbiA2ODg2
NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1NWR0lubGluZUZsb3dCb3guaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1NiArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktp
dCBwcm9qZWN0LgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBPbGl2ZXIgSHVudCA8b2poMTZA
c3R1ZGVudC5jYW50ZXJidXJ5LmFjLm56PgotICogICAgICAgICAgIChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyIEluYy4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKgotICovCi0KLSNpZm5kZWYgU1ZHSW5saW5lRmxvd0JveF9oCi0jZGVmaW5lIFNWR0lu
bGluZUZsb3dCb3hfaAotCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJJbmxpbmVGbG93Qm94
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU1ZHSW5saW5lRmxvd0JveCA6IHB1
YmxpYyBJbmxpbmVGbG93Qm94IHsKLXB1YmxpYzoKLSAgICBTVkdJbmxpbmVGbG93Qm94KFJlbmRl
ck9iamVjdCogb2JqKQotICAgICAgICA6IElubGluZUZsb3dCb3gob2JqKQotICAgICAgICAsIG1f
bG9naWNhbEhlaWdodCgwKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGludCB2aXJ0dWFs
TG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbEhlaWdodDsgfQotICAgIHZv
aWQgc2V0TG9naWNhbEhlaWdodChpbnQgaCkgeyBtX2xvZ2ljYWxIZWlnaHQgPSBoOyB9Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOwotCi0gICAg
dmlydHVhbCBJbnRSZWN0IGNhbGN1bGF0ZUJvdW5kYXJpZXMoKSBjb25zdDsKLSAgICB2b2lkIGxh
eW91dEZsb3dCb3goKTsKLQotcHJpdmF0ZToKLSAgICBpbnQgbV9sb2dpY2FsSGVpZ2h0OwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNWRykKLQotI2Vu
ZGlmIC8vIFNWR0lubGluZUZsb3dCb3hfaApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5s
aW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5l
VGV4dEJveC5jcHAJKHJldmlzaW9uIDY4ODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5s
aW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsODg4ICswLDAgQEAKLS8qKgotICog
Q29weXJpZ2h0IChDKSAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiAgICAgICAgICAg
KEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU1ZHSW5saW5lVGV4dEJv
eC5oIgotCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJJbmxpbmVGbG93Qm94LmgiCi0j
aW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgot
I2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVCb3guaCIKLSNpbmNsdWRlICJTVkdUZXh0TGF5b3V0VXRp
bGl0aWVzLmgiCi0KLSNpbmNsdWRlIDxmbG9hdC5oPgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNWR0lubGluZVRleHRCb3g6OlNWR0lubGluZVRleHRC
b3goUmVuZGVyT2JqZWN0KiBvYmplY3QpCi0gICAgOiBJbmxpbmVUZXh0Qm94KG9iamVjdCkKLSAg
ICAsIG1fbG9naWNhbEhlaWdodCgwKQotICAgICwgbV9wYWludGluZ1Jlc291cmNlKDApCi0gICAg
LCBtX3BhaW50aW5nUmVzb3VyY2VNb2RlKEFwcGx5VG9EZWZhdWx0TW9kZSkKLXsKLX0KLQotU1ZH
Um9vdElubGluZUJveCogU1ZHSW5saW5lVGV4dEJveDo6c3ZnUm9vdElubGluZUJveCgpIGNvbnN0
Ci17Ci0gICAgLy8gRmluZCBhc3NvY2lhdGVkIHJvb3QgaW5saW5lIGJveAotICAgIElubGluZUZs
b3dCb3gqIHBhcmVudEJveCA9IHBhcmVudCgpOwotCi0gICAgd2hpbGUgKHBhcmVudEJveCAmJiAh
cGFyZW50Qm94LT5pc1Jvb3RJbmxpbmVCb3goKSkKLSAgICAgICAgcGFyZW50Qm94ID0gcGFyZW50
Qm94LT5wYXJlbnQoKTsKLQotICAgIEFTU0VSVChwYXJlbnRCb3gpOwotICAgIEFTU0VSVChwYXJl
bnRCb3gtPmlzUm9vdElubGluZUJveCgpKTsKLQotICAgIGlmICghcGFyZW50Qm94LT5pc1NWR1Jv
b3RJbmxpbmVCb3goKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8U1ZHUm9vdElubGluZUJveCo+KHBhcmVudEJveCk7Ci19Ci0KLXZvaWQgU1ZHSW5saW5lVGV4
dEJveDo6bWVhc3VyZUNoYXJhY3RlcihSZW5kZXJTdHlsZSogc3R5bGUsIGludCBwb3NpdGlvbiwg
aW50JiBjaGFyc0NvbnN1bWVkLCBTdHJpbmcmIGdseXBoTmFtZSwgU3RyaW5nJiB1bmljb2RlU3Ry
aW5nLCBmbG9hdCYgZ2x5cGhXaWR0aCwgZmxvYXQmIGdseXBoSGVpZ2h0KSBjb25zdAotewotICAg
IEFTU0VSVChzdHlsZSk7Ci0KLSAgICBpbnQgb2Zmc2V0ID0gIWlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IGVuZCgpIC0gcG9zaXRpb24gOiBzdGFydCgpICsgcG9zaXRpb247Ci0gICAgaW50IGV4
dHJhQ2hhcnNBdmFpbGFibGUgPSBsZW4oKSAtIHBvc2l0aW9uIC0gMTsKLSAgICBjb25zdCBVQ2hh
ciogY2hhcmFjdGVycyA9IHRleHRSZW5kZXJlcigpLT5jaGFyYWN0ZXJzKCk7Ci0KLSAgICBjb25z
dCBGb250JiBmb250ID0gc3R5bGUtPmZvbnQoKTsKLSAgICBnbHlwaFdpZHRoID0gZm9udC5mbG9h
dFdpZHRoKHN2Z1RleHRSdW5Gb3JJbmxpbmVUZXh0Qm94KGNoYXJhY3RlcnMgKyBvZmZzZXQsIDEs
IHN0eWxlLCB0aGlzKSwgZXh0cmFDaGFyc0F2YWlsYWJsZSwgY2hhcnNDb25zdW1lZCwgZ2x5cGhO
YW1lKTsKLSAgICBnbHlwaEhlaWdodCA9IGZvbnQuaGVpZ2h0KCk7Ci0KLSAgICAvLyBUaGUgdW5p
Y29kZVN0cmluZyAvIGdseXBoTmFtZSBwYWlyIGlzIG5lZWRlZCBmb3Iga2VybmluZyBjYWxjdWxh
dGlvbnMuCi0gICAgdW5pY29kZVN0cmluZyA9IFN0cmluZyhjaGFyYWN0ZXJzICsgb2Zmc2V0LCBj
aGFyc0NvbnN1bWVkKTsKLX0KLQotaW50IFNWR0lubGluZVRleHRCb3g6Om9mZnNldEZvclBvc2l0
aW9uKGludCB4Q29vcmRpbmF0ZSwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocykgY29uc3QKLXsK
LSAgICBBU1NFUlQoIW1fY3VycmVudENodW5rUGFydC5pc1ZhbGlkKCkpOwotICAgIGZsb2F0IHgg
PSB4Q29vcmRpbmF0ZTsKLQotICAgIFJlbmRlclRleHQqIHRleHRSZW5kZXJlciA9IHRoaXMtPnRl
eHRSZW5kZXJlcigpOwotICAgIEFTU0VSVCh0ZXh0UmVuZGVyZXIpOwotCi0gICAgUmVuZGVyU3R5
bGUqIHN0eWxlID0gdGV4dFJlbmRlcmVyLT5zdHlsZSgpOwotICAgIEFTU0VSVChzdHlsZSk7Ci0K
LSAgICBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrID0gdGV4dFJlbmRlcmVyLT5jb250YWlu
aW5nQmxvY2soKTsKLSAgICBBU1NFUlQoY29udGFpbmluZ0Jsb2NrKTsKLQotICAgIC8vIE1vdmUg
aW5jb21pbmcgcmVsYXRpdmUgeCBwb3NpdGlvbiB0byBhYnNvbHV0ZSBwb3NpdGlvbiwgYXMgdGhl
IGNoYXJhY3RlciBvcmlnaW5zIHN0b3JlZCBpbiB0aGUgY2h1bmsgcGFydHMgdXNlIGFic29sdXRl
IGNvb3JkaW5hdGVzCi0gICAgeCArPSBjb250YWluaW5nQmxvY2stPngoKTsKLQotICAgIC8vIEZp
Z3VyZSBvdXQgd2hpY2ggdGV4dCBjaHVuayBwYXJ0IGlzIGhpdAotICAgIFNWR1RleHRDaHVua1Bh
cnQgaGl0UGFydDsKLQotICAgIGNvbnN0IFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0Pjo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gbV9zdmdUZXh0Q2h1bmtQYXJ0cy5lbmQoKTsKLSAgICBmb3IgKFZlY3Rv
cjxTVkdUZXh0Q2h1bmtQYXJ0Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N2Z1RleHRDaHVua1Bh
cnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBjb25zdCBTVkdUZXh0Q2h1
bmtQYXJ0JiBwYXJ0ID0gKml0OwotCi0gICAgICAgIC8vIENoZWNrIHdoZXRoZXIgd2UncmUgcGFz
dCB0aGUgaGl0IHBhcnQuCi0gICAgICAgIGlmICh4IDwgcGFydC5maXJzdENoYXJhY3Rlci0+eCkK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGhpdFBhcnQgPSBwYXJ0OwotICAgIH0KLQot
ICAgIC8vIElmIHdlIGRpZCBub3QgaGl0IGFueXRoaW5nLCBqdXN0IGV4aXQuCi0gICAgaWYgKCFo
aXRQYXJ0LmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAvLyBCZWZvcmUgY2Fs
bGluZyBGb250OjpvZmZzZXRGb3JQb3NpdGlvbigpLCBzdWJ0cmFjdCB0aGUgc3RhcnQgcG9zaXRp
b24gb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgotICAgIC8vIGluIHRoZSBoaXQgdGV4dCBjaHVuayBw
YXJ0LCB0byBwYXNzIGluIGNvb3JkaW5hdGVzLCB3aGljaCBhcmUgcmVsYXRpdmUgdG8gdGhlIHRl
eHQgY2h1bmsgcGFydCwgYXMKLSAgICAvLyBjb25zdHJ1Y3RUZXh0UnVuKCkgb25seSBidWlsZHMg
YSBUZXh0UnVuIGZvciB0aGUgY3VycmVudCBjaHVuayBwYXJ0LCBub3QgdGhlIHdob2xlIGlubGlu
ZSB0ZXh0IGJveC4KLSAgICB4IC09IGhpdFBhcnQuZmlyc3RDaGFyYWN0ZXItPng7Ci0KLSAgICBt
X2N1cnJlbnRDaHVua1BhcnQgPSBoaXRQYXJ0OwotICAgIFRleHRSdW4gdGV4dFJ1bihjb25zdHJ1
Y3RUZXh0UnVuKHN0eWxlKSk7Ci0gICAgbV9jdXJyZW50Q2h1bmtQYXJ0ID0gU1ZHVGV4dENodW5r
UGFydCgpOwotCi0gICAgLy8gRXZlbnR1YWxseSBoYW5kbGUgbGVuZ3RoQWRqdXN0PSJzcGFjaW5n
QW5kR2x5cGhzIi4KLSAgICAvLyBGSVhNRTogTmVlZCB0byByZXZpc2l0IHRoZSB3aG9sZSBvZmZz
ZXRGb3JQb3NpdGlvbiBjb25jZXB0IGZvciB2ZXJ0aWNhbCB0ZXh0IHNlbGVjdGlvbi4KLSAgICBp
ZiAoIW1fY2h1bmtUcmFuc2Zvcm1hdGlvbi5pc0lkZW50aXR5KCkpCi0gICAgICAgIHRleHRSdW4u
c2V0SG9yaXpvbnRhbEdseXBoU3RyZXRjaChuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KG1fY2h1bmtU
cmFuc2Zvcm1hdGlvbi5hKCkpKTsKLQotICAgIHJldHVybiBoaXRQYXJ0Lm9mZnNldCArIHN0eWxl
LT5mb250KCkub2Zmc2V0Rm9yUG9zaXRpb24odGV4dFJ1biwgeCwgaW5jbHVkZVBhcnRpYWxHbHlw
aHMpOwotfQotCi1pbnQgU1ZHSW5saW5lVGV4dEJveDo6cG9zaXRpb25Gb3JPZmZzZXQoaW50KSBj
b25zdAotewotICAgIC8vIFNWRyBkb2Vzbid0IHVzZSB0aGUgb2Zmc2V0IDwtPiBwb3NpdGlvbiBz
ZWxlY3Rpb24gc3lzdGVtLiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
MDsKLX0KLQotRmxvYXRSZWN0IFNWR0lubGluZVRleHRCb3g6OnNlbGVjdGlvblJlY3RGb3JUZXh0
Q2h1bmtQYXJ0KGNvbnN0IFNWR1RleHRDaHVua1BhcnQmIHBhcnQsIGludCBwYXJ0U3RhcnRQb3Ms
IGludCBwYXJ0RW5kUG9zLCBSZW5kZXJTdHlsZSogc3R5bGUpCi17Ci0gICAgLy8gTWFwIHN0YXJ0
UG9zL2VuZFBvcyBwb3NpdGlvbnMgaW50byBjaHVuayBwYXJ0Ci0gICAgbWFwU3RhcnRFbmRQb3Np
dGlvbnNJbnRvQ2h1bmtQYXJ0Q29vcmRpbmF0ZXMocGFydFN0YXJ0UG9zLCBwYXJ0RW5kUG9zLCBw
YXJ0KTsKLQotICAgIGlmIChwYXJ0U3RhcnRQb3MgPj0gcGFydEVuZFBvcykKLSAgICAgICAgcmV0
dXJuIEZsb2F0UmVjdCgpOwotCi0gICAgLy8gU2V0IGN1cnJlbnQgY2h1bmsgcGFydCwgc28gY29u
c3RydWN0VGV4dFJ1bigpIHdvcmtzIHByb3Blcmx5LgotICAgIG1fY3VycmVudENodW5rUGFydCA9
IHBhcnQ7Ci0KLSAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUtPmZvbnQoKTsKLSAgICBWZWN0
b3I8U1ZHQ2hhcj46OmNvbnN0X2l0ZXJhdG9yIGNoYXJhY3RlciA9IHBhcnQuZmlyc3RDaGFyYWN0
ZXI7Ci0gICAgRmxvYXRQb2ludCB0ZXh0T3JpZ2luKGNoYXJhY3Rlci0+eCwgY2hhcmFjdGVyLT55
IC0gZm9udC5hc2NlbnQoKSk7Ci0KLSAgICBGbG9hdFJlY3QgcGFydFJlY3QoZm9udC5zZWxlY3Rp
b25SZWN0Rm9yVGV4dChjb25zdHJ1Y3RUZXh0UnVuKHN0eWxlKSwgdGV4dE9yaWdpbiwgcGFydC5o
ZWlnaHQsIHBhcnRTdGFydFBvcywgcGFydEVuZFBvcykpOwotICAgIG1fY3VycmVudENodW5rUGFy
dCA9IFNWR1RleHRDaHVua1BhcnQoKTsKLQotICAgIHJldHVybiBjaGFyYWN0ZXItPmNoYXJhY3Rl
clRyYW5zZm9ybSgpLm1hcFJlY3QocGFydFJlY3QpOwotfQotCi1JbnRSZWN0IFNWR0lubGluZVRl
eHRCb3g6OnNlbGVjdGlvblJlY3QoaW50LCBpbnQsIGludCBzdGFydFBvcywgaW50IGVuZFBvcykK
LXsKLSAgICBBU1NFUlQoIW1fY3VycmVudENodW5rUGFydC5pc1ZhbGlkKCkpOwotCi0gICAgaW50
IGJveFN0YXJ0ID0gc3RhcnQoKTsKLSAgICBzdGFydFBvcyA9IG1heChzdGFydFBvcyAtIGJveFN0
YXJ0LCAwKTsKLSAgICBlbmRQb3MgPSBtaW4oZW5kUG9zIC0gYm94U3RhcnQsIHN0YXRpY19jYXN0
PGludD4obGVuKCkpKTsKLQotICAgIGlmIChzdGFydFBvcyA+PSBlbmRQb3MpCi0gICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7Ci0KLSAgICBSZW5kZXJUZXh0KiB0ZXh0ID0gdGV4dFJlbmRlcmVyKCk7
Ci0gICAgQVNTRVJUKHRleHQpOwotCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gdGV4dC0+c3R5
bGUoKTsKLSAgICBBU1NFUlQoc3R5bGUpOwotCi0gICAgRmxvYXRSZWN0IHNlbGVjdGlvblJlY3Q7
Ci0KLSAgICAvLyBGaWd1cmUgb3V0IHdoaWNoIHRleHQgY2h1bmsgcGFydCBpcyBoaXQKLSAgICBj
b25zdCBWZWN0b3I8U1ZHVGV4dENodW5rUGFydD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fc3Zn
VGV4dENodW5rUGFydHMuZW5kKCk7Ci0gICAgZm9yIChWZWN0b3I8U1ZHVGV4dENodW5rUGFydD46
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zdmdUZXh0Q2h1bmtQYXJ0cy5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpCi0gICAgICAgIHNlbGVjdGlvblJlY3QudW5pdGUoc2VsZWN0aW9uUmVjdEZvclRl
eHRDaHVua1BhcnQoKml0LCBzdGFydFBvcywgZW5kUG9zLCBzdHlsZSkpOwotCi0gICAgLy8gUmVz
ZXBlY3QgcG9zc2libGUgY2h1bmsgdHJhbnNmb3JtYXRpb24KLSAgICBpZiAobV9jaHVua1RyYW5z
Zm9ybWF0aW9uLmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3Qo
c2VsZWN0aW9uUmVjdCk7Ci0KLSAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChtX2NodW5rVHJh
bnNmb3JtYXRpb24ubWFwUmVjdChzZWxlY3Rpb25SZWN0KSk7Ci19Ci0KLXZvaWQgU1ZHSW5saW5l
VGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCwgaW50KQotewotICAgIEFT
U0VSVChwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpKTsKLSAgICBB
U1NFUlQocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8IHBhaW50SW5m
by5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKTsKLSAgICBBU1NFUlQodHJ1bmNhdGlvbigp
ID09IGNOb1RydW5jYXRpb24pOwotCi0gICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPnZpc2li
aWxpdHkoKSAhPSBWSVNJQkxFKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBOb3RlOiBXZSdy
ZSBleHBsaWNpdGVseSBub3Qgc3VwcG9ydGluZyBjb21wb3NpdGlvbiAmIGN1c3RvbSB1bmRlcmxp
bmVzIGFuZCBjdXN0b20gaGlnaGxpZ2h0ZXJzIC0gdW5saWtlIElubGluZVRleHRCb3guCi0gICAg
Ly8gSWYgd2UgZXZlciBuZWVkIHRoYXQgZm9yIFNWRywgaXQncyB2ZXJ5IGVhc3kgdG8gcmVmYWN0
b3IgYW5kIHJldXNlIHRoZSBjb2RlLgotCi0gICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJl
ciA9IHBhcmVudCgpLT5yZW5kZXJlcigpOwotICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7Ci0K
LSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKLSAgICBB
U1NFUlQoc3R5bGUpOwotCi0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gc3R5
bGUtPnN2Z1N0eWxlKCk7Ci0gICAgQVNTRVJUKHN2Z1N0eWxlKTsKLQotICAgIGJvb2wgaGFzRmls
bCA9IHN2Z1N0eWxlLT5oYXNGaWxsKCk7Ci0gICAgYm9vbCBoYXNTdHJva2UgPSBzdmdTdHlsZS0+
aGFzU3Ryb2tlKCk7Ci0gICAgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHkgPSBwYWludEluZm8u
cGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbjsKLQotICAgIC8vIERldGVybWluZSB3aGV0aGVy
IG9yIG5vdCB3ZSdyZSBzZWxlY3RlZC4KLSAgICBib29sIGlzUHJpbnRpbmcgPSBwYXJlbnRSZW5k
ZXJlci0+ZG9jdW1lbnQoKS0+cHJpbnRpbmcoKTsKLSAgICBib29sIGhhc1NlbGVjdGlvbiA9ICFp
c1ByaW50aW5nICYmIHNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25O
b25lOwotICAgIGlmICghaGFzU2VsZWN0aW9uICYmIHBhaW50U2VsZWN0ZWRUZXh0T25seSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVyU3R5bGUqIHNlbGVjdGlvblN0eWxlID0gc3R5bGU7
Ci0gICAgaWYgKGhhc1NlbGVjdGlvbikgewotICAgICAgICBzZWxlY3Rpb25TdHlsZSA9IHBhcmVu
dFJlbmRlcmVyLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pOwotICAgICAgICBpZiAo
c2VsZWN0aW9uU3R5bGUpIHsKLSAgICAgICAgICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdmdT
ZWxlY3Rpb25TdHlsZSA9IHNlbGVjdGlvblN0eWxlLT5zdmdTdHlsZSgpOwotICAgICAgICAgICAg
QVNTRVJUKHN2Z1NlbGVjdGlvblN0eWxlKTsKLQotICAgICAgICAgICAgaWYgKCFoYXNGaWxsKQot
ICAgICAgICAgICAgICAgIGhhc0ZpbGwgPSBzdmdTZWxlY3Rpb25TdHlsZS0+aGFzRmlsbCgpOwot
ICAgICAgICAgICAgaWYgKCFoYXNTdHJva2UpCi0gICAgICAgICAgICAgICAgaGFzU3Ryb2tlID0g
c3ZnU2VsZWN0aW9uU3R5bGUtPmhhc1N0cm9rZSgpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIHNlbGVjdGlvblN0eWxlID0gc3R5bGU7Ci0gICAgfQotCi0gICAgLy8gQ29tcHV0ZSB0ZXh0
IG1hdGNoIG1hcmtlciByZWN0cy4gSXQgbmVlZHMgdG8gdHJhdmVyc2UgYWxsIHRleHQgY2h1bmsg
cGFydHMgdG8gZmlndXJlCi0gICAgLy8gb3V0IHRoZSB1bmlvbiBzZWxlY3Rpb24gcmVjdCBvZiBh
bGwgdGV4dCBjaHVuayBwYXJ0cyB0aGF0IGNvbnRyaWJ1dGUgdG8gdGhlIHNlbGVjdGlvbi4KLSAg
ICBjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdChzdHlsZSk7Ci0gICAgQVNTRVJUKCFtX2N1cnJl
bnRDaHVua1BhcnQuaXNWYWxpZCgpKTsKLQotICAgIGNvbnN0IFZlY3RvcjxTVkdUZXh0Q2h1bmtQ
YXJ0Pjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9zdmdUZXh0Q2h1bmtQYXJ0cy5lbmQoKTsKLSAg
ICBmb3IgKFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N2
Z1RleHRDaHVua1BhcnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBBU1NF
UlQoIW1fcGFpbnRpbmdSZXNvdXJjZSk7Ci0KLSAgICAgICAgLy8gY29uc3RydWN0VGV4dFJ1bigp
IHVzZXMgdGhlIGN1cnJlbnQgY2h1bmsgcGFydCB0byBmaWd1cmUgb3V0IHdoYXQgdGV4dCB0byBy
ZW5kZXIuCi0gICAgICAgIG1fY3VycmVudENodW5rUGFydCA9ICppdDsKLSAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPnNhdmUoKTsKLQotICAgICAgICAvLyBQcmVwYXJlIGNvbnRleHQgYW5kIGRy
YXcgdGV4dAotICAgICAgICBpZiAoIW1fY2h1bmtUcmFuc2Zvcm1hdGlvbi5pc0lkZW50aXR5KCkp
Ci0gICAgICAgICAgICBwYWludEluZm8uY29udGV4dC0+Y29uY2F0Q1RNKG1fY2h1bmtUcmFuc2Zv
cm1hdGlvbik7Ci0KLSAgICAgICAgVmVjdG9yPFNWR0NoYXI+Ojpjb25zdF9pdGVyYXRvciBmaXJz
dENoYXJhY3RlciA9IG1fY3VycmVudENodW5rUGFydC5maXJzdENoYXJhY3RlcjsKLSAgICAgICAg
QWZmaW5lVHJhbnNmb3JtIGNoYXJhY3RlclRyYW5zZm9ybSA9IGZpcnN0Q2hhcmFjdGVyLT5jaGFy
YWN0ZXJUcmFuc2Zvcm0oKTsKLSAgICAgICAgaWYgKCFjaGFyYWN0ZXJUcmFuc2Zvcm0uaXNJZGVu
dGl0eSgpKQotICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmNvbmNhdENUTShjaGFyYWN0
ZXJUcmFuc2Zvcm0pOwotCi0gICAgICAgIEZsb2F0UG9pbnQgdGV4dE9yaWdpbihmaXJzdENoYXJh
Y3Rlci0+eCwgZmlyc3RDaGFyYWN0ZXItPnkpOwotCi0gICAgICAgIC8vIERyYXcgYmFja2dyb3Vu
ZCBvbmNlIChub3QgaW4gYm90aCBmaWxsL3N0cm9rZSBwaGFzZXMpCi0gICAgICAgIGlmICghaXNQ
cmludGluZyAmJiAhcGFpbnRTZWxlY3RlZFRleHRPbmx5ICYmIGhhc1NlbGVjdGlvbikKLSAgICAg
ICAgICAgIHBhaW50U2VsZWN0aW9uKHBhaW50SW5mby5jb250ZXh0LCB0ZXh0T3JpZ2luLCBzdHls
ZSk7Ci0KLSAgICAgICAgLy8gU3BlYzogQWxsIHRleHQgZGVjb3JhdGlvbnMgZXhjZXB0IGxpbmUt
dGhyb3VnaCBzaG91bGQgYmUgZHJhd24gYmVmb3JlIHRoZSB0ZXh0IGlzIGZpbGxlZCBhbmQgc3Ry
b2tlZDsgdGh1cywgdGhlIHRleHQgaXMgcmVuZGVyZWQgb24gdG9wIG9mIHRoZXNlIGRlY29yYXRp
b25zLgotICAgICAgICBpbnQgZGVjb3JhdGlvbnMgPSBzdHlsZS0+dGV4dERlY29yYXRpb25zSW5F
ZmZlY3QoKTsKLSAgICAgICAgaWYgKGRlY29yYXRpb25zICYgVU5ERVJMSU5FKQotICAgICAgICAg
ICAgcGFpbnREZWNvcmF0aW9uKHBhaW50SW5mby5jb250ZXh0LCB0ZXh0T3JpZ2luLCBVTkRFUkxJ
TkUsIGhhc1NlbGVjdGlvbik7Ci0gICAgICAgIGlmIChkZWNvcmF0aW9ucyAmIE9WRVJMSU5FKQot
ICAgICAgICAgICAgcGFpbnREZWNvcmF0aW9uKHBhaW50SW5mby5jb250ZXh0LCB0ZXh0T3JpZ2lu
LCBPVkVSTElORSwgaGFzU2VsZWN0aW9uKTsKLQotICAgICAgICAvLyBGaWxsIHRleHQKLSAgICAg
ICAgaWYgKGhhc0ZpbGwpIHsKLSAgICAgICAgICAgIG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUgPSBB
cHBseVRvRmlsbE1vZGUgfCBBcHBseVRvVGV4dE1vZGU7Ci0gICAgICAgICAgICBwYWludFRleHQo
cGFpbnRJbmZvLmNvbnRleHQsIHRleHRPcmlnaW4sIHN0eWxlLCBzZWxlY3Rpb25TdHlsZSwgaGFz
U2VsZWN0aW9uLCBwYWludFNlbGVjdGVkVGV4dE9ubHkpOwotICAgICAgICB9Ci0KLSAgICAgICAg
Ly8gU3Ryb2tlIHRleHQKLSAgICAgICAgaWYgKGhhc1N0cm9rZSkgewotICAgICAgICAgICAgbV9w
YWludGluZ1Jlc291cmNlTW9kZSA9IEFwcGx5VG9TdHJva2VNb2RlIHwgQXBwbHlUb1RleHRNb2Rl
OwotICAgICAgICAgICAgcGFpbnRUZXh0KHBhaW50SW5mby5jb250ZXh0LCB0ZXh0T3JpZ2luLCBz
dHlsZSwgc2VsZWN0aW9uU3R5bGUsIGhhc1NlbGVjdGlvbiwgcGFpbnRTZWxlY3RlZFRleHRPbmx5
KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFNwZWM6IExpbmUtdGhyb3VnaCBzaG91bGQgYmUg
ZHJhd24gYWZ0ZXIgdGhlIHRleHQgaXMgZmlsbGVkIGFuZCBzdHJva2VkOyB0aHVzLCB0aGUgbGlu
ZS10aHJvdWdoIGlzIHJlbmRlcmVkIG9uIHRvcCBvZiB0aGUgdGV4dC4KLSAgICAgICAgaWYgKGRl
Y29yYXRpb25zICYgTElORV9USFJPVUdIKQotICAgICAgICAgICAgcGFpbnREZWNvcmF0aW9uKHBh
aW50SW5mby5jb250ZXh0LCB0ZXh0T3JpZ2luLCBMSU5FX1RIUk9VR0gsIGhhc1NlbGVjdGlvbik7
Ci0KLSAgICAgICAgbV9wYWludGluZ1Jlc291cmNlTW9kZSA9IEFwcGx5VG9EZWZhdWx0TW9kZTsK
LSAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICB9Ci0KLSAgICBtX2N1
cnJlbnRDaHVua1BhcnQgPSBTVkdUZXh0Q2h1bmtQYXJ0KCk7Ci0gICAgQVNTRVJUKCFtX3BhaW50
aW5nUmVzb3VyY2UpOwotfQotCi1ib29sIFNWR0lubGluZVRleHRCb3g6OmFjcXVpcmVQYWludGlu
Z1Jlc291cmNlKEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQsIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIsIFJlbmRlclN0eWxlKiBzdHlsZSkKLXsKLSAgICBBU1NFUlQocmVuZGVyZXIpOwotICAgIEFT
U0VSVChzdHlsZSk7Ci0gICAgQVNTRVJUKG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUgIT0gQXBwbHlU
b0RlZmF1bHRNb2RlKTsKLQotICAgIGlmIChtX3BhaW50aW5nUmVzb3VyY2VNb2RlICYgQXBwbHlU
b0ZpbGxNb2RlKQotICAgICAgICBtX3BhaW50aW5nUmVzb3VyY2UgPSBSZW5kZXJTVkdSZXNvdXJj
ZTo6ZmlsbFBhaW50aW5nUmVzb3VyY2UocmVuZGVyZXIsIHN0eWxlKTsKLSAgICBlbHNlIGlmICht
X3BhaW50aW5nUmVzb3VyY2VNb2RlICYgQXBwbHlUb1N0cm9rZU1vZGUpCi0gICAgICAgIG1fcGFp
bnRpbmdSZXNvdXJjZSA9IFJlbmRlclNWR1Jlc291cmNlOjpzdHJva2VQYWludGluZ1Jlc291cmNl
KHJlbmRlcmVyLCBzdHlsZSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIFdlJ3JlIGVpdGhlciBj
YWxsZWQgZm9yIHN0cm9raW5nIG9yIGZpbGxpbmcuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIH0KLQotICAgIGlmICghbV9wYWludGluZ1Jlc291cmNlKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBtX3BhaW50aW5nUmVzb3VyY2UtPmFwcGx5UmVzb3VyY2UocmVuZGVy
ZXIsIHN0eWxlLCBjb250ZXh0LCBtX3BhaW50aW5nUmVzb3VyY2VNb2RlKTsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpyZWxlYXNlUGFpbnRpbmdSZXNvdXJj
ZShHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0KQotewotICAgIEFTU0VSVChtX3BhaW50aW5nUmVz
b3VyY2UpOwotCi0gICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IHBhcmVudCgpLT5y
ZW5kZXJlcigpOwotICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7Ci0KLSAgICBtX3BhaW50aW5n
UmVzb3VyY2UtPnBvc3RBcHBseVJlc291cmNlKHBhcmVudFJlbmRlcmVyLCBjb250ZXh0LCBtX3Bh
aW50aW5nUmVzb3VyY2VNb2RlKTsKLSAgICBtX3BhaW50aW5nUmVzb3VyY2UgPSAwOwotfQotCi1i
b29sIFNWR0lubGluZVRleHRCb3g6OnByZXBhcmVHcmFwaGljc0NvbnRleHRGb3JUZXh0UGFpbnRp
bmcoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgVGV4dFJ1biYgdGV4dFJ1biwgUmVuZGVyU3R5
bGUqIHN0eWxlKQotewotICAgIGJvb2wgYWNxdWlyZWRSZXNvdXJjZSA9IGFjcXVpcmVQYWludGlu
Z1Jlc291cmNlKGNvbnRleHQsIHBhcmVudCgpLT5yZW5kZXJlcigpLCBzdHlsZSk7Ci0KLSNpZiBF
TkFCTEUoU1ZHX0ZPTlRTKQotICAgIC8vIFNWRyBGb250cyBuZWVkIGFjY2VzcyB0byB0aGUgcGFp
bnRpbmcgcmVzb3VyY2UgdXNlZCB0byBkcmF3IHRoZSBjdXJyZW50IHRleHQgY2h1bmsuCi0gICAg
aWYgKGFjcXVpcmVkUmVzb3VyY2UpCi0gICAgICAgIHRleHRSdW4uc2V0QWN0aXZlUGFpbnRpbmdS
ZXNvdXJjZShtX3BhaW50aW5nUmVzb3VyY2UpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gYWNxdWly
ZWRSZXNvdXJjZTsKLX0KLQotdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpyZXN0b3JlR3JhcGhpY3ND
b250ZXh0QWZ0ZXJUZXh0UGFpbnRpbmcoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgVGV4dFJ1
biYgdGV4dFJ1bikKLXsKLSAgICByZWxlYXNlUGFpbnRpbmdSZXNvdXJjZShjb250ZXh0KTsKLQot
I2lmIEVOQUJMRShTVkdfRk9OVFMpCi0gICAgdGV4dFJ1bi5zZXRBY3RpdmVQYWludGluZ1Jlc291
cmNlKDApOwotI2VuZGlmCi19Ci0KLVRleHRSdW4gU1ZHSW5saW5lVGV4dEJveDo6Y29uc3RydWN0
VGV4dFJ1bihSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fY3VycmVu
dENodW5rUGFydC5pc1ZhbGlkKCkpOwotICAgIHJldHVybiBzdmdUZXh0UnVuRm9ySW5saW5lVGV4
dEJveCh0ZXh0UmVuZGVyZXIoKS0+dGV4dCgpLT5jaGFyYWN0ZXJzKCkgKyBzdGFydCgpICsgbV9j
dXJyZW50Q2h1bmtQYXJ0Lm9mZnNldCwgbV9jdXJyZW50Q2h1bmtQYXJ0Lmxlbmd0aCwgc3R5bGUs
IHRoaXMpOwotfQotCi12b2lkIFNWR0lubGluZVRleHRCb3g6Om1hcFN0YXJ0RW5kUG9zaXRpb25z
SW50b0NodW5rUGFydENvb3JkaW5hdGVzKGludCYgc3RhcnRQb3MsIGludCYgZW5kUG9zLCBjb25z
dCBTVkdUZXh0Q2h1bmtQYXJ0JiBwYXJ0KSBjb25zdAotewotICAgIGlmIChzdGFydFBvcyA+PSBl
bmRQb3MpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFRha2UgPHRleHQgeD0iMTAgNTAgMTAw
Ij5BQkM8L3RleHQ+IGFzIGV4YW1wbGUuIFdlJ3JlIGNhbGxlZCB0aHJlZSB0aW1lcyBmcm9tIHBh
aW50KCksIGJlY2F1c2UgYWxsIGFic29sdXRlIHBvc2l0aW9uZWQKLSAgICAvLyBjaGFyYWN0ZXJz
IGFyZSBkcmF3biBvbiB0aGVpciBvd24uIEZvciBlYWNoIG9mIHRoZW0gd2Ugd2FudCB0byBmaW5k
IG91dCB3aGVodGVyIGl0J3Mgc2VsZWN0ZWQuIHN0YXJ0UG9zPTAsIGVuZFBvcz0xCi0gICAgLy8g
Y291bGQgbWVhbiBBLCBCIG9yIEMgaXMgaGl0LCBkZXBlbmRpbmcgb24gd2hpY2ggY2h1bmsgcGFy
dCBpcyBwcm9jZXNzZWQgYXQgdGhlIG1vbWVudC4gV2l0aCB0aGUgb2Zmc2V0ICYgbGVuZ3RoIHZh
bHVlcwotICAgIC8vIG9mIGVhY2ggY2h1bmsgcGFydCB3ZSBjYW4gZWFzaWx5IGZpbmQgb3V0IHdo
aWNoIG9uZSBpcyBtZWFudCB0byBiZSBzZWxlY3RlZC4gQmFpbCBvdXQgZm9yIHRoZSBvdGhlciBj
aHVuayBwYXJ0cy4KLSAgICAvLyBJZiBzdGFyUG9zIGlzIGJlaGluZCB0aGUgY3VycmVudCBjaHVu
ayBvciB0aGUgZW5kUG9zIGVuZHMgYmVmb3JlIHRoaXMgdGV4dCBjaHVuayBwYXJ0LCB3ZSdyZSBu
b3QgbWVhbnQgdG8gYmUgc2VsZWN0ZWQuCi0gICAgaWYgKHN0YXJ0UG9zID49IHBhcnQub2Zmc2V0
ICsgcGFydC5sZW5ndGggfHwgZW5kUG9zIDw9IHBhcnQub2Zmc2V0KSB7Ci0gICAgICAgIHN0YXJ0
UG9zID0gMDsKLSAgICAgICAgZW5kUG9zID0gLTE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICAvLyBUaGUgY3VycmVudCBwcm9jZXNzZWQgY2h1bmsgcGFydCBpcyBoaXQuIFdoZW4gcGFp
bnRpbmcgdGhlIHNlbGVjdGlvbiwgY29uc3RydWN0VGV4dFJ1bigpIGJ1aWxkcwotICAgIC8vIGEg
VGV4dFJ1biBvYmplY3Qgd2hvc2Ugc3RhcnRQb3MgaXMgMCBhbmQgZW5kUG9zIGlzIGNodW5rIHBh
cnQgbGVuZ3RoLiBUaGUgY29kZSBiZWxvdyBtYXBzIHRoZSBpbmNvbWluZwotICAgIC8vIHN0YXJ0
UG9zL2VuZFBvcyByYW5nZSBpbnRvIGEgWzAsIHBhcnQgbGVuZ3RoXSBjb29yZGluYXRlIHN5c3Rl
bSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgY2h1bmsgcGFydC4KLSAgICBpZiAoc3RhcnRQb3Mg
PCBwYXJ0Lm9mZnNldCkKLSAgICAgICAgc3RhcnRQb3MgPSAwOwotICAgIGVsc2UKLSAgICAgICAg
c3RhcnRQb3MgLT0gcGFydC5vZmZzZXQ7Ci0KLSAgICBpZiAoZW5kUG9zID4gcGFydC5vZmZzZXQg
KyBwYXJ0Lmxlbmd0aCkKLSAgICAgICAgZW5kUG9zID0gcGFydC5sZW5ndGg7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIEFTU0VSVChlbmRQb3MgPj0gcGFydC5vZmZzZXQpOwotICAgICAgICBlbmRQb3Mg
LT0gcGFydC5vZmZzZXQ7Ci0gICAgfQotCi0gICAgQVNTRVJUKHN0YXJ0UG9zIDwgZW5kUG9zKTsK
LX0KLQotdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpzZWxlY3Rpb25TdGFydEVuZChpbnQmIHN0YXJ0
UG9zLCBpbnQmIGVuZFBvcykKLXsKLSAgICBJbmxpbmVUZXh0Qm94OjpzZWxlY3Rpb25TdGFydEVu
ZChzdGFydFBvcywgZW5kUG9zKTsKLQotICAgIGlmICghbV9jdXJyZW50Q2h1bmtQYXJ0LmlzVmFs
aWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbWFwU3RhcnRFbmRQb3NpdGlvbnNJbnRvQ2h1
bmtQYXJ0Q29vcmRpbmF0ZXMoc3RhcnRQb3MsIGVuZFBvcywgbV9jdXJyZW50Q2h1bmtQYXJ0KTsK
LX0KLQotdm9pZCBTVkdJbmxpbmVUZXh0Qm94Ojpjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdChS
ZW5kZXJTdHlsZSogc3R5bGUpCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRDaHVua1BhcnQuaXNW
YWxpZCgpKTsKLSAgICBOb2RlKiBub2RlID0gcmVuZGVyZXIoKS0+bm9kZSgpOwotICAgIGlmICgh
bm9kZSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSByZW5kZXJlcigpLT5kb2N1bWVudCgpOwotICAgIFZlY3RvcjxEb2N1
bWVudE1hcmtlcj4gbWFya2VycyA9IGRvY3VtZW50LT5tYXJrZXJzKCktPm1hcmtlcnNGb3JOb2Rl
KHJlbmRlcmVyKCktPm5vZGUoKSk7Ci0KLSAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+OjppdGVy
YXRvciBtYXJrZXJFbmQgPSBtYXJrZXJzLmVuZCgpOwotICAgIGZvciAoVmVjdG9yPERvY3VtZW50
TWFya2VyPjo6aXRlcmF0b3IgbWFya2VySXQgPSBtYXJrZXJzLmJlZ2luKCk7IG1hcmtlckl0ICE9
IG1hcmtlckVuZDsgKyttYXJrZXJJdCkgewotICAgICAgICBjb25zdCBEb2N1bWVudE1hcmtlciYg
bWFya2VyID0gKm1hcmtlckl0OwotCi0gICAgICAgIC8vIFNWRyBpcyBvbmx5IGludGVyZXNzdGVk
IGluIHRoZSBUZXh0TWF0Y2ggbWFya2VyLCBmb3Igbm93LgotICAgICAgICBpZiAobWFya2VyLnR5
cGUgIT0gRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
Ci0gICAgICAgIEZsb2F0UmVjdCBtYXJrZXJSZWN0OwotICAgICAgICBpbnQgcGFydFN0YXJ0UG9z
ID0gbWF4KG1hcmtlci5zdGFydE9mZnNldCAtIHN0YXJ0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
PigwKSk7Ci0gICAgICAgIGludCBwYXJ0RW5kUG9zID0gbWluKG1hcmtlci5lbmRPZmZzZXQgLSBz
dGFydCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obGVuKCkpKTsKLQotICAgICAgICAvLyBJdGVy
YXRlIG92ZXIgYWxsIHRleHQgY2h1bmsgcGFydHMsIHRvIHNlZSB3aGljaCBvbmVzIGhhdmUgdG8g
YmUgaGlnaGxpZ2h0ZWQKLSAgICAgICAgY29uc3QgVmVjdG9yPFNWR1RleHRDaHVua1BhcnQ+Ojpj
b25zdF9pdGVyYXRvciBlbmQgPSBtX3N2Z1RleHRDaHVua1BhcnRzLmVuZCgpOwotICAgICAgICBm
b3IgKFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N2Z1Rl
eHRDaHVua1BhcnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgICAgIG1hcmtl
clJlY3QudW5pdGUoc2VsZWN0aW9uUmVjdEZvclRleHRDaHVua1BhcnQoKml0LCBwYXJ0U3RhcnRQ
b3MsIHBhcnRFbmRQb3MsIHN0eWxlKSk7Ci0KLSAgICAgICAgaWYgKCFtX2NodW5rVHJhbnNmb3Jt
YXRpb24uaXNJZGVudGl0eSgpKQotICAgICAgICAgICAgbWFya2VyUmVjdCA9IG1fY2h1bmtUcmFu
c2Zvcm1hdGlvbi5tYXBSZWN0KG1hcmtlclJlY3QpOwotCi0gICAgICAgIGRvY3VtZW50LT5tYXJr
ZXJzKCktPnNldFJlbmRlcmVkUmVjdEZvck1hcmtlcihub2RlLCBtYXJrZXIsIHJlbmRlcmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQobWFya2VyUmVjdCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7
Ci0gICAgfQotfQotCi1zdGF0aWMgaW5saW5lIGZsb2F0IHBvc2l0aW9uT2Zmc2V0Rm9yRGVjb3Jh
dGlvbihFVGV4dERlY29yYXRpb24gZGVjb3JhdGlvbiwgY29uc3QgRm9udCYgZm9udCwgZmxvYXQg
dGhpY2tuZXNzKQotewotICAgIC8vIEZJWE1FOiBGb3IgU1ZHIEZvbnRzIHdlIG5lZWQgdG8gdXNl
IHRoZSBhdHRyaWJ1dGVzIGRlZmluZWQgaW4gdGhlIDxmb250LWZhY2U+IGlmIHNwZWNpZmllZC4K
LSAgICAvLyBDb21wYXRpYmxlIHdpdGggQmF0aWsvT3BlcmEuCi0gICAgaWYgKGRlY29yYXRpb24g
PT0gVU5ERVJMSU5FKQotICAgICAgICByZXR1cm4gZm9udC5hc2NlbnQoKSArIHRoaWNrbmVzcyAq
IDEuNWY7Ci0gICAgaWYgKGRlY29yYXRpb24gPT0gT1ZFUkxJTkUpCi0gICAgICAgIHJldHVybiB0
aGlja25lc3M7Ci0gICAgaWYgKGRlY29yYXRpb24gPT0gTElORV9USFJPVUdIKQotICAgICAgICBy
ZXR1cm4gZm9udC5hc2NlbnQoKSAqIDUuMGYgLyA4LjBmOwotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIDAuMGY7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgZmxvYXQgdGhpY2tu
ZXNzRm9yRGVjb3JhdGlvbihFVGV4dERlY29yYXRpb24sIGNvbnN0IEZvbnQmIGZvbnQpCi17Ci0g
ICAgLy8gRklYTUU6IEZvciBTVkcgRm9udHMgd2UgbmVlZCB0byB1c2UgdGhlIGF0dHJpYnV0ZXMg
ZGVmaW5lZCBpbiB0aGUgPGZvbnQtZmFjZT4gaWYgc3BlY2lmaWVkLgotICAgIC8vIENvbXBhdGli
bGUgd2l0aCBCYXRpay9PcGVyYQotICAgIHJldHVybiBmb250LnNpemUoKSAvIDIwLjBmOwotfQot
IAotc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGZpbmRSZW5kZXJPYmplY3REZWZpbmluaW5n
VGV4dERlY29yYXRpb24oSW5saW5lRmxvd0JveCogcGFyZW50Qm94LCBFVGV4dERlY29yYXRpb24g
ZGVjb3JhdGlvbikKLXsKLSAgICAvLyBMb29rdXAgcmVuZGVyIG9iamVjdCB3aGljaCBoYXMgdGV4
dC1kZWNvcmF0aW9uIHNldC4KLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gMDsKLSAgICB3
aGlsZSAocGFyZW50Qm94KSB7Ci0gICAgICAgIHJlbmRlcmVyID0gcGFyZW50Qm94LT5yZW5kZXJl
cigpOwotCi0gICAgICAgIC8vIEV4cGxpY2l0ZWx5IGNoZWNrIHRleHREZWNvcmF0aW9uKCkgbm90
IHRleHREZWNvcmF0aW9uc0luRWZmZWN0KCksIHdoaWNoIGlzIGluaGVyaXRlZCB0bwotICAgICAg
ICAvLyBjaGlsZHJlbiwgYXMgd2Ugd2FudCB0byBsb29rdXAgdGhlIHJlbmRlciBvYmplY3Qgd2hv
c2Ugc3R5bGUgZGVmaW5lZCB0aGUgdGV4dC1kZWNvcmF0aW9uLgotICAgICAgICBpZiAocmVuZGVy
ZXItPnN0eWxlKCkgJiYgcmVuZGVyZXItPnN0eWxlKCktPnRleHREZWNvcmF0aW9uKCkgJiBkZWNv
cmF0aW9uKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgcGFyZW50Qm94ID0gcGFyZW50
Qm94LT5wYXJlbnQoKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQocmVuZGVyZXIpOwotICAgIHJldHVy
biByZW5kZXJlcjsKLX0KLQotdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24o
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBF
VGV4dERlY29yYXRpb24gZGVjb3JhdGlvbiwgYm9vbCBoYXNTZWxlY3Rpb24pCi17Ci0gICAgLy8g
RmluZCBvdXQgd2hpY2ggcmVuZGVyIHN0eWxlIGRlZmluZWQgdGhlIHRleHQtZGVjb3JhdGlvbiwg
YXMgaXRzIGZpbGwvc3Ryb2tlIHByb3BlcnRpZXMgaGF2ZSB0byBiZSB1c2VkIGZvciBkcmF3aW5n
IGluc3RlYWQgb2Ygb3Vycy4KLSAgICBSZW5kZXJPYmplY3QqIGRlY29yYXRpb25SZW5kZXJlciA9
IGZpbmRSZW5kZXJPYmplY3REZWZpbmluaW5nVGV4dERlY29yYXRpb24ocGFyZW50KCksIGRlY29y
YXRpb24pOwotICAgIFJlbmRlclN0eWxlKiBkZWNvcmF0aW9uU3R5bGUgPSBkZWNvcmF0aW9uUmVu
ZGVyZXItPnN0eWxlKCk7Ci0gICAgQVNTRVJUKGRlY29yYXRpb25TdHlsZSk7Ci0KLSAgICBjb25z
dCBTVkdSZW5kZXJTdHlsZSogc3ZnRGVjb3JhdGlvblN0eWxlID0gZGVjb3JhdGlvblN0eWxlLT5z
dmdTdHlsZSgpOwotICAgIEFTU0VSVChzdmdEZWNvcmF0aW9uU3R5bGUpOwotCi0gICAgYm9vbCBo
YXNEZWNvcmF0aW9uRmlsbCA9IHN2Z0RlY29yYXRpb25TdHlsZS0+aGFzRmlsbCgpOwotICAgIGJv
b2wgaGFzRGVjb3JhdGlvblN0cm9rZSA9IHN2Z0RlY29yYXRpb25TdHlsZS0+aGFzU3Ryb2tlKCk7
Ci0KLSAgICBpZiAoaGFzU2VsZWN0aW9uKSB7Ci0gICAgICAgIGlmIChSZW5kZXJTdHlsZSogcHNl
dWRvU3R5bGUgPSBkZWNvcmF0aW9uUmVuZGVyZXItPmdldENhY2hlZFBzZXVkb1N0eWxlKFNFTEVD
VElPTikpIHsKLSAgICAgICAgICAgIGRlY29yYXRpb25TdHlsZSA9IHBzZXVkb1N0eWxlOwotCi0g
ICAgICAgICAgICBzdmdEZWNvcmF0aW9uU3R5bGUgPSBkZWNvcmF0aW9uU3R5bGUtPnN2Z1N0eWxl
KCk7Ci0gICAgICAgICAgICBBU1NFUlQoc3ZnRGVjb3JhdGlvblN0eWxlKTsKLQotICAgICAgICAg
ICAgaWYgKCFoYXNEZWNvcmF0aW9uRmlsbCkKLSAgICAgICAgICAgICAgICBoYXNEZWNvcmF0aW9u
RmlsbCA9IHN2Z0RlY29yYXRpb25TdHlsZS0+aGFzRmlsbCgpOwotICAgICAgICAgICAgaWYgKCFo
YXNEZWNvcmF0aW9uU3Ryb2tlKQotICAgICAgICAgICAgICAgIGhhc0RlY29yYXRpb25TdHJva2Ug
PSBzdmdEZWNvcmF0aW9uU3R5bGUtPmhhc1N0cm9rZSgpOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgaWYgKGRlY29yYXRpb25TdHlsZS0+dmlzaWJpbGl0eSgpID09IEhJRERFTikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKGhhc0RlY29yYXRpb25GaWxsKSB7Ci0gICAgICAgIG1fcGFpbnRp
bmdSZXNvdXJjZU1vZGUgPSBBcHBseVRvRmlsbE1vZGU7Ci0gICAgICAgIHBhaW50RGVjb3JhdGlv
bldpdGhTdHlsZShjb250ZXh0LCB0ZXh0T3JpZ2luLCBkZWNvcmF0aW9uUmVuZGVyZXIsIGRlY29y
YXRpb24pOwotICAgIH0KLQotICAgIGlmIChoYXNEZWNvcmF0aW9uU3Ryb2tlKSB7Ci0gICAgICAg
IG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUgPSBBcHBseVRvU3Ryb2tlTW9kZTsKLSAgICAgICAgcGFp
bnREZWNvcmF0aW9uV2l0aFN0eWxlKGNvbnRleHQsIHRleHRPcmlnaW4sIGRlY29yYXRpb25SZW5k
ZXJlciwgZGVjb3JhdGlvbik7Ci0gICAgfQotfQotCi12b2lkIFNWR0lubGluZVRleHRCb3g6OnBh
aW50RGVjb3JhdGlvbldpdGhTdHlsZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZs
b2F0UG9pbnQmIHRleHRPcmlnaW4sIFJlbmRlck9iamVjdCogZGVjb3JhdGlvblJlbmRlcmVyLCBF
VGV4dERlY29yYXRpb24gZGVjb3JhdGlvbikKLXsKLSAgICBBU1NFUlQoIW1fcGFpbnRpbmdSZXNv
dXJjZSk7Ci0gICAgQVNTRVJUKG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUgIT0gQXBwbHlUb0RlZmF1
bHRNb2RlKTsKLSAgICBBU1NFUlQobV9jdXJyZW50Q2h1bmtQYXJ0LmlzVmFsaWQoKSk7Ci0KLSAg
ICBSZW5kZXJTdHlsZSogZGVjb3JhdGlvblN0eWxlID0gZGVjb3JhdGlvblJlbmRlcmVyLT5zdHls
ZSgpOwotICAgIEFTU0VSVChkZWNvcmF0aW9uU3R5bGUpOwotCi0gICAgY29uc3QgRm9udCYgZm9u
dCA9IGRlY29yYXRpb25TdHlsZS0+Zm9udCgpOwotCi0gICAgLy8gVGhlIGluaXRpYWwgeSB2YWx1
ZSByZWZlcnMgdG8gb3ZlcmxpbmUgcG9zaXRpb24uCi0gICAgZmxvYXQgdGhpY2tuZXNzID0gdGhp
Y2tuZXNzRm9yRGVjb3JhdGlvbihkZWNvcmF0aW9uLCBmb250KTsKLSAgICBmbG9hdCB4ID0gdGV4
dE9yaWdpbi54KCk7Ci0gICAgZmxvYXQgeSA9IHRleHRPcmlnaW4ueSgpIC0gZm9udC5hc2NlbnQo
KSArIHBvc2l0aW9uT2Zmc2V0Rm9yRGVjb3JhdGlvbihkZWNvcmF0aW9uLCBmb250LCB0aGlja25l
c3MpOwotCi0gICAgY29udGV4dC0+c2F2ZSgpOwotICAgIGNvbnRleHQtPmJlZ2luUGF0aCgpOwot
ICAgIGNvbnRleHQtPmFkZFBhdGgoUGF0aDo6Y3JlYXRlUmVjdGFuZ2xlKEZsb2F0UmVjdCh4LCB5
LCBtX2N1cnJlbnRDaHVua1BhcnQud2lkdGgsIHRoaWNrbmVzcykpKTsKLQotICAgIGlmIChhY3F1
aXJlUGFpbnRpbmdSZXNvdXJjZShjb250ZXh0LCBkZWNvcmF0aW9uUmVuZGVyZXIsIGRlY29yYXRp
b25TdHlsZSkpCi0gICAgICAgIHJlbGVhc2VQYWludGluZ1Jlc291cmNlKGNvbnRleHQpOwotCi0g
ICAgY29udGV4dC0+cmVzdG9yZSgpOwotfQotCi12b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50
U2VsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgdGV4
dE9yaWdpbiwgUmVuZGVyU3R5bGUqIHN0eWxlKQotewotICAgIC8vIFNlZSBpZiB3ZSBoYXZlIGEg
c2VsZWN0aW9uIHRvIHBhaW50IGF0IGFsbC4KLSAgICBpbnQgc3RhcnRQb3MsIGVuZFBvczsKLSAg
ICBzZWxlY3Rpb25TdGFydEVuZChzdGFydFBvcywgZW5kUG9zKTsKLSAgICBpZiAoc3RhcnRQb3Mg
Pj0gZW5kUG9zKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3Ig
PSByZW5kZXJlcigpLT5zZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKLSAgICBpZiAoIWJhY2tn
cm91bmRDb2xvci5pc1ZhbGlkKCkgfHwgIWJhY2tncm91bmRDb2xvci5hbHBoYSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUtPmZvbnQoKTsKLQotICAg
IEZsb2F0UG9pbnQgc2VsZWN0aW9uT3JpZ2luID0gdGV4dE9yaWdpbjsKLSAgICBzZWxlY3Rpb25P
cmlnaW4ubW92ZSgwLCAtZm9udC5hc2NlbnQoKSk7Ci0KLSAgICBjb250ZXh0LT5zYXZlKCk7Ci0g
ICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGJhY2tncm91bmRDb2xvciwgc3R5bGUtPmNvbG9yU3Bh
Y2UoKSk7Ci0gICAgY29udGV4dC0+ZmlsbFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChj
b25zdHJ1Y3RUZXh0UnVuKHN0eWxlKSwgc2VsZWN0aW9uT3JpZ2luLCBtX2N1cnJlbnRDaHVua1Bh
cnQuaGVpZ2h0LCBzdGFydFBvcywgZW5kUG9zKSwgYmFja2dyb3VuZENvbG9yLCBzdHlsZS0+Y29s
b3JTcGFjZSgpKTsKLSAgICBjb250ZXh0LT5yZXN0b3JlKCk7Ci19Ci0KLXZvaWQgU1ZHSW5saW5l
VGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBSZW5kZXJTdHlsZSogc3R5bGUsIFRleHRSdW4m
IHRleHRSdW4sIGludCBzdGFydFBvcywgaW50IGVuZFBvcykKLXsKLSAgICBjb25zdCBGb250JiBm
b250ID0gc3R5bGUtPmZvbnQoKTsKLSAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cgPSBzdHls
ZS0+dGV4dFNoYWRvdygpOwotCi0gICAgRmxvYXRSZWN0IHNoYWRvd1JlY3QoRmxvYXRQb2ludCh0
ZXh0T3JpZ2luLngoKSwgdGV4dE9yaWdpbi55KCkgLSBmb250LmFzY2VudCgpKSwgRmxvYXRTaXpl
KG1fY3VycmVudENodW5rUGFydC53aWR0aCwgbV9jdXJyZW50Q2h1bmtQYXJ0LmhlaWdodCkpOwot
ICAgIGRvIHsKLSAgICAgICAgaWYgKCFwcmVwYXJlR3JhcGhpY3NDb250ZXh0Rm9yVGV4dFBhaW50
aW5nKGNvbnRleHQsIHRleHRSdW4sIHN0eWxlKSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAg
ICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKLSAgICAgICAgaWYgKHNoYWRvdykKLSAgICAgICAg
ICAgIGV4dHJhT2Zmc2V0ID0gYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCBz
aGFkb3csIHNoYWRvd1JlY3QsIGZhbHNlIC8qIHN0cm9rZWQgKi8sIHRydWUgLyogb3BhcXVlICov
KTsKLQotICAgICAgICBmb250LmRyYXdUZXh0KGNvbnRleHQsIHRleHRSdW4sIHRleHRPcmlnaW4g
KyBleHRyYU9mZnNldCwgc3RhcnRQb3MsIGVuZFBvcyk7Ci0gICAgICAgIHJlc3RvcmVHcmFwaGlj
c0NvbnRleHRBZnRlclRleHRQYWludGluZyhjb250ZXh0LCB0ZXh0UnVuKTsKLQotICAgICAgICBp
ZiAoIXNoYWRvdykKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlmIChzaGFkb3ctPm5l
eHQoKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3coKTsKLQotICAgICAgICBzaGFkb3cgPSBzaGFk
b3ctPm5leHQoKTsKLSAgICB9IHdoaWxlIChzaGFkb3cpOwotfQotCi12b2lkIFNWR0lubGluZVRl
eHRCb3g6OnBhaW50VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9p
bnQmIHRleHRPcmlnaW4sIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHNlbGVjdGlv
blN0eWxlLCBib29sIGhhc1NlbGVjdGlvbiwgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHkpCi17
Ci0gICAgQVNTRVJUKHN0eWxlKTsKLSAgICBBU1NFUlQoc2VsZWN0aW9uU3R5bGUpOwotICAgIEFT
U0VSVChtX2N1cnJlbnRDaHVua1BhcnQuaXNWYWxpZCgpKTsKLQotICAgIGludCBzdGFydFBvcyA9
IDA7Ci0gICAgaW50IGVuZFBvcyA9IDA7Ci0gICAgc2VsZWN0aW9uU3RhcnRFbmQoc3RhcnRQb3Ms
IGVuZFBvcyk7Ci0KLSAgICAvLyBGYXN0IHBhdGggaWYgdGhlcmUgaXMgbm8gc2VsZWN0aW9uLCBq
dXN0IGRyYXcgdGhlIHdob2xlIGNodW5rIHBhcnQgdXNpbmcgdGhlIHJlZ3VsYXIgc3R5bGUKLSAg
ICBUZXh0UnVuIHRleHRSdW4oY29uc3RydWN0VGV4dFJ1bihzdHlsZSkpOwotICAgIGlmICghaGFz
U2VsZWN0aW9uIHx8IHN0YXJ0UG9zID49IGVuZFBvcykgewotICAgICAgICBwYWludFRleHRXaXRo
U2hhZG93cyhjb250ZXh0LCB0ZXh0T3JpZ2luLCBzdHlsZSwgdGV4dFJ1biwgMCwgbV9jdXJyZW50
Q2h1bmtQYXJ0Lmxlbmd0aCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBFdmVu
dHVhbGx5IGRyYXcgdGV4dCB1c2luZyByZWd1bGFyIHN0eWxlIHVudGlsIHRoZSBzdGFydCBwb3Np
dGlvbiBvZiB0aGUgc2VsZWN0aW9uCi0gICAgaWYgKHN0YXJ0UG9zID4gMCAmJiAhcGFpbnRTZWxl
Y3RlZFRleHRPbmx5KQotICAgICAgICBwYWludFRleHRXaXRoU2hhZG93cyhjb250ZXh0LCB0ZXh0
T3JpZ2luLCBzdHlsZSwgdGV4dFJ1biwgMCwgc3RhcnRQb3MpOwotCi0gICAgLy8gRHJhdyB0ZXh0
IHVzaW5nIHNlbGVjdGlvbiBzdHlsZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kIHBvc2l0aW9u
IG9mIHRoZSBzZWxlY3Rpb24KLSAgICBpZiAoc3R5bGUgIT0gc2VsZWN0aW9uU3R5bGUpCi0gICAg
ICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRTdHlsZUNoYW5nZWQocGFyZW50KCktPnJlbmRl
cmVyKCksIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQsIHNlbGVjdGlvblN0eWxlKTsKLQotICAgIFRl
eHRSdW4gc2VsZWN0aW9uVGV4dFJ1bihjb25zdHJ1Y3RUZXh0UnVuKHNlbGVjdGlvblN0eWxlKSk7
Ci0gICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgdGV4dE9yaWdpbiwgc2VsZWN0aW9u
U3R5bGUsIHRleHRSdW4sIHN0YXJ0UG9zLCBlbmRQb3MpOwotCi0gICAgaWYgKHN0eWxlICE9IHNl
bGVjdGlvblN0eWxlKQotICAgICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50U3R5bGVDaGFu
Z2VkKHBhcmVudCgpLT5yZW5kZXJlcigpLCBTdHlsZURpZmZlcmVuY2VSZXBhaW50LCBzdHlsZSk7
Ci0KLSAgICAvLyBFdmVudHVhbGx5IGRyYXcgdGV4dCB1c2luZyByZWd1bGFyIHN0eWxlIGZyb20g
dGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgc2VsZWN0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIGN1cnJl
bnQgY2h1bmsgcGFydAotICAgIGlmIChlbmRQb3MgPCBtX2N1cnJlbnRDaHVua1BhcnQubGVuZ3Ro
ICYmICFwYWludFNlbGVjdGVkVGV4dE9ubHkpCi0gICAgICAgIHBhaW50VGV4dFdpdGhTaGFkb3dz
KGNvbnRleHQsIHRleHRPcmlnaW4sIHN0eWxlLCB0ZXh0UnVuLCBlbmRQb3MsIG1fY3VycmVudENo
dW5rUGFydC5sZW5ndGgpOwotfQotCi12b2lkIFNWR0lubGluZVRleHRCb3g6OmJ1aWxkTGF5b3V0
SW5mb3JtYXRpb24oU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mbyYgaW5mbywgU1ZHTGFzdEdseXBoSW5m
byYgbGFzdEdseXBoKQotewotICAgIFJlbmRlclRleHQqIHRleHRSZW5kZXJlciA9IHRoaXMtPnRl
eHRSZW5kZXJlcigpOwotICAgIEFTU0VSVCh0ZXh0UmVuZGVyZXIpOwotCi0gICAgUmVuZGVyU3R5
bGUqIHN0eWxlID0gdGV4dFJlbmRlcmVyLT5zdHlsZSgpOwotICAgIEFTU0VSVChzdHlsZSk7Ci0K
LSAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gcGFyZW50KCktPnJlbmRlcmVyKCk7
Ci0gICAgQVNTRVJUKHBhcmVudFJlbmRlcmVyKTsKLSAgICBBU1NFUlQocGFyZW50UmVuZGVyZXIt
Pm5vZGUoKSk7Ci0gICAgQVNTRVJUKHBhcmVudFJlbmRlcmVyLT5ub2RlKCktPmlzU1ZHRWxlbWVu
dCgpKTsKLSAgICBTVkdFbGVtZW50KiBsZW5ndGhDb250ZXh0ID0gc3RhdGljX2Nhc3Q8U1ZHRWxl
bWVudCo+KHBhcmVudFJlbmRlcmVyLT5ub2RlKCkpOwotCi0gICAgY29uc3QgRm9udCYgZm9udCA9
IHN0eWxlLT5mb250KCk7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0ZXh0UmVuZGVy
ZXItPmNoYXJhY3RlcnMoKTsKLQotICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24gPSBzdGFydCgp
OwotICAgIHVuc2lnbmVkIGVuZFBvc2l0aW9uID0gZW5kKCk7Ci0gICAgdW5zaWduZWQgbGVuZ3Ro
ID0gbGVuKCk7Ci0KLSAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBzdHlsZS0+
c3ZnU3R5bGUoKTsKLSAgICBib29sIGlzVmVydGljYWxUZXh0ID0gaXNWZXJ0aWNhbFdyaXRpbmdN
b2RlKHN2Z1N0eWxlKTsKLQotICAgIGludCBjaGFyc0NvbnN1bWVkID0gMDsKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IGNoYXJzQ29uc3VtZWQpIHsKLSAgICAgICAg
U1ZHQ2hhciBzdmdDaGFyOwotCi0gICAgICAgIGlmIChpbmZvLmluUGF0aExheW91dCgpKQotICAg
ICAgICAgICAgc3ZnQ2hhci5wYXRoRGF0YSA9IFNWR0NoYXJPblBhdGg6OmNyZWF0ZSgpOwotCi0g
ICAgICAgIGZsb2F0IGdseXBoV2lkdGggPSAwLjBmOwotICAgICAgICBmbG9hdCBnbHlwaEhlaWdo
dCA9IDAuMGY7Ci0gICAgICAgIFN0cmluZyBnbHlwaE5hbWU7Ci0gICAgICAgIFN0cmluZyB1bmlj
b2RlU3RyaW5nOwotICAgICAgICBtZWFzdXJlQ2hhcmFjdGVyKHN0eWxlLCBpLCBjaGFyc0NvbnN1
bWVkLCBnbHlwaE5hbWUsIHVuaWNvZGVTdHJpbmcsIGdseXBoV2lkdGgsIGdseXBoSGVpZ2h0KTsK
LQotICAgICAgICBib29sIGFzc2lnbmVkWCA9IGZhbHNlOwotICAgICAgICBib29sIGFzc2lnbmVk
WSA9IGZhbHNlOwotCi0gICAgICAgIGlmIChpbmZvLnhWYWx1ZUF2YWlsYWJsZSgpICYmICghaW5m
by5pblBhdGhMYXlvdXQoKSB8fCAoaW5mby5pblBhdGhMYXlvdXQoKSAmJiAhaXNWZXJ0aWNhbFRl
eHQpKSkgewotICAgICAgICAgICAgaWYgKCFpc1ZlcnRpY2FsVGV4dCkKLSAgICAgICAgICAgICAg
ICBzdmdDaGFyLm5ld1RleHRDaHVuayA9IHRydWU7Ci0KLSAgICAgICAgICAgIGFzc2lnbmVkWCA9
IHRydWU7Ci0gICAgICAgICAgICBzdmdDaGFyLmRyYXduU2VwZXJhdGVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGluZm8uY3VyeCA9IGluZm8ueFZhbHVlTmV4dCgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKGluZm8ueVZhbHVlQXZhaWxhYmxlKCkgJiYgKCFpbmZvLmluUGF0aExheW91dCgpIHx8
IChpbmZvLmluUGF0aExheW91dCgpICYmIGlzVmVydGljYWxUZXh0KSkpIHsKLSAgICAgICAgICAg
IGlmIChpc1ZlcnRpY2FsVGV4dCkKLSAgICAgICAgICAgICAgICBzdmdDaGFyLm5ld1RleHRDaHVu
ayA9IHRydWU7Ci0KLSAgICAgICAgICAgIGFzc2lnbmVkWSA9IHRydWU7Ci0gICAgICAgICAgICBz
dmdDaGFyLmRyYXduU2VwZXJhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGluZm8uY3VyeSA9IGlu
Zm8ueVZhbHVlTmV4dCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgZmxvYXQgZHggPSAwLjBmOwot
ICAgICAgICBmbG9hdCBkeSA9IDAuMGY7Ci0KLSAgICAgICAgLy8gQXBwbHkgeC1heGlzIHNoaWZ0
Ci0gICAgICAgIGlmIChpbmZvLmR4VmFsdWVBdmFpbGFibGUoKSkgewotICAgICAgICAgICAgc3Zn
Q2hhci5kcmF3blNlcGVyYXRlZCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGR4ID0gaW5mby5keFZh
bHVlTmV4dCgpOwotICAgICAgICAgICAgaW5mby5keCArPSBkeDsKLQotICAgICAgICAgICAgaWYg
KCFpbmZvLmluUGF0aExheW91dCgpKQotICAgICAgICAgICAgICAgIGluZm8uY3VyeCArPSBkeDsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIEFwcGx5IHktYXhpcyBzaGlmdAotICAgICAgICBpZiAo
aW5mby5keVZhbHVlQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgICAgIHN2Z0NoYXIuZHJhd25TZXBl
cmF0ZWQgPSB0cnVlOwotCi0gICAgICAgICAgICBkeSA9IGluZm8uZHlWYWx1ZU5leHQoKTsKLSAg
ICAgICAgICAgIGluZm8uZHkgKz0gZHk7Ci0KLSAgICAgICAgICAgIGlmICghaW5mby5pblBhdGhM
YXlvdXQoKSkKLSAgICAgICAgICAgICAgICBpbmZvLmN1cnkgKz0gZHk7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvLyBUYWtlIGxldHRlciAmIHdvcmQgc3BhY2luZyBhbmQga2VybmluZyBpbnRvIGFj
Y291bnQKLSAgICAgICAgZmxvYXQgc3BhY2luZyA9IGZvbnQubGV0dGVyU3BhY2luZygpICsgY2Fs
Y3VsYXRlQ1NTS2VybmluZyhsZW5ndGhDb250ZXh0LCBzdHlsZSk7Ci0KLSAgICAgICAgY29uc3Qg
VUNoYXIqIGN1cnJlbnRDaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzICsgKCFpc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkgPyBlbmRQb3NpdGlvbiAtIGkgOiBzdGFydFBvc2l0aW9uICsgaSk7Ci0gICAgICAg
IGNvbnN0IFVDaGFyKiBsYXN0Q2hhcmFjdGVyID0gMDsKLQotICAgICAgICBpZiAoIWlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSkgewotICAgICAgICAgICAgaWYgKGkgPCBlbmRQb3NpdGlvbikKLSAg
ICAgICAgICAgICAgICBsYXN0Q2hhcmFjdGVyID0gY2hhcmFjdGVycyArIGVuZFBvc2l0aW9uIC0g
aSArICAxOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGkgPiAwKQotICAgICAg
ICAgICAgICAgIGxhc3RDaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzICsgc3RhcnRQb3NpdGlvbiArIGkg
LSAxOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRklYTUU6IFNWRyBLZXJuaW5nIGRvZXNuJ3Qg
Z2V0IGFwcGxpZWQgb24gdGV4dHMgb24gcGF0aC4KLSAgICAgICAgYm9vbCBhcHBsaWVkU1ZHS2Vy
bmluZyA9IGFwcGx5U1ZHS2VybmluZyhpbmZvLCBzdHlsZSwgbGFzdEdseXBoLCB1bmljb2RlU3Ry
aW5nLCBnbHlwaE5hbWUsIGlzVmVydGljYWxUZXh0KTsKLSAgICAgICAgaWYgKGluZm8ubmV4dERy
YXduU2VwZXJhdGVkIHx8IHNwYWNpbmcgIT0gMC4wZiB8fCBhcHBsaWVkU1ZHS2VybmluZykgewot
ICAgICAgICAgICAgaW5mby5uZXh0RHJhd25TZXBlcmF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAg
IHN2Z0NoYXIuZHJhd25TZXBlcmF0ZWQgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KGN1cnJlbnRDaGFyYWN0ZXIgJiYgRm9udDo6dHJlYXRBc1NwYWNlKCpjdXJyZW50Q2hhcmFjdGVy
KSAmJiBsYXN0Q2hhcmFjdGVyICYmICFGb250Ojp0cmVhdEFzU3BhY2UoKmxhc3RDaGFyYWN0ZXIp
KSB7Ci0gICAgICAgICAgICBzcGFjaW5nICs9IGZvbnQud29yZFNwYWNpbmcoKTsKLQotICAgICAg
ICAgICAgaWYgKHNwYWNpbmcgIT0gMC4wZiAmJiAhaW5mby5pblBhdGhMYXlvdXQoKSkKLSAgICAg
ICAgICAgICAgICBpbmZvLm5leHREcmF3blNlcGVyYXRlZCA9IHRydWU7Ci0gICAgICAgIH0KLQot
ICAgICAgICBmbG9hdCBvcmllbnRhdGlvbkFuZ2xlID0gZ2x5cGhPcmllbnRhdGlvblRvQW5nbGUo
c3ZnU3R5bGUsIGlzVmVydGljYWxUZXh0LCAqY3VycmVudENoYXJhY3Rlcik7Ci0KLSAgICAgICAg
ZmxvYXQgeE9yaWVudGF0aW9uU2hpZnQgPSAwLjBmOwotICAgICAgICBmbG9hdCB5T3JpZW50YXRp
b25TaGlmdCA9IDAuMGY7Ci0gICAgICAgIGZsb2F0IGdseXBoQWR2YW5jZSA9IGFwcGx5R2x5cGhB
ZHZhbmNlQW5kU2hpZnRSZXNwZWN0aW5nT3JpZW50YXRpb24oaXNWZXJ0aWNhbFRleHQsIG9yaWVu
dGF0aW9uQW5nbGUsIGdseXBoV2lkdGgsIGdseXBoSGVpZ2h0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvbnQsIHN2Z0NoYXIsIHhPcmllbnRhdGlvblNoaWZ0LCB5T3JpZW50YXRpb25TaGlmdCk7Ci0K
LSAgICAgICAgLy8gSGFuZGxlIHRleHRQYXRoIGxheW91dCBtb2RlCi0gICAgICAgIGlmIChpbmZv
LmluUGF0aExheW91dCgpKSB7Ci0gICAgICAgICAgICBmbG9hdCBleHRyYUFkdmFuY2UgPSBpc1Zl
cnRpY2FsVGV4dCA/IGR5IDogZHg7Ci0gICAgICAgICAgICBmbG9hdCBuZXdPZmZzZXQgPSBGTFRf
TUlOOwotCi0gICAgICAgICAgICBpZiAoYXNzaWduZWRYICYmICFpc1ZlcnRpY2FsVGV4dCkKLSAg
ICAgICAgICAgICAgICBuZXdPZmZzZXQgPSBpbmZvLmN1cng7Ci0gICAgICAgICAgICBlbHNlIGlm
IChhc3NpZ25lZFkgJiYgaXNWZXJ0aWNhbFRleHQpCi0gICAgICAgICAgICAgICAgbmV3T2Zmc2V0
ID0gaW5mby5jdXJ5OwotCi0gICAgICAgICAgICBmbG9hdCBjb3JyZWN0ZWRHbHlwaEFkdmFuY2Ug
PSBnbHlwaEFkdmFuY2U7Ci0KLSAgICAgICAgICAgIC8vIEhhbmRsZSBsZW5ndGhBZGp1c3Q9InNw
YWNpbmdBbmRHbHlwaHMiIGJ5IHNwZWNpZnlpbmcgcGVyLWNoYXJhY3RlciBzY2FsZSBvcGVyYXRp
b25zCi0gICAgICAgICAgICBpZiAoaW5mby5wYXRoVGV4dExlbmd0aCAmJiBpbmZvLnBhdGhDaHVu
a0xlbmd0aCkgeyAKLSAgICAgICAgICAgICAgICBpZiAoaXNWZXJ0aWNhbFRleHQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgc3ZnQ2hhci5wYXRoRGF0YS0+eVNjYWxlID0gaW5mby5wYXRoQ2h1bmtM
ZW5ndGggLyBpbmZvLnBhdGhUZXh0TGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICBzcGFjaW5n
ICo9IHN2Z0NoYXIucGF0aERhdGEtPnlTY2FsZTsKLSAgICAgICAgICAgICAgICAgICAgY29ycmVj
dGVkR2x5cGhBZHZhbmNlICo9IHN2Z0NoYXIucGF0aERhdGEtPnlTY2FsZTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzdmdDaGFyLnBhdGhEYXRhLT54U2Nh
bGUgPSBpbmZvLnBhdGhDaHVua0xlbmd0aCAvIGluZm8ucGF0aFRleHRMZW5ndGg7Ci0gICAgICAg
ICAgICAgICAgICAgIHNwYWNpbmcgKj0gc3ZnQ2hhci5wYXRoRGF0YS0+eFNjYWxlOwotICAgICAg
ICAgICAgICAgICAgICBjb3JyZWN0ZWRHbHlwaEFkdmFuY2UgKj0gc3ZnQ2hhci5wYXRoRGF0YS0+
eFNjYWxlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
Ly8gSGFuZGxlIGxldHRlciAmIHdvcmQgc3BhY2luZyBvbiB0ZXh0IHBhdGgKLSAgICAgICAgICAg
IGZsb2F0IHBhdGhFeHRyYUFkdmFuY2UgPSBpbmZvLnBhdGhFeHRyYUFkdmFuY2U7Ci0gICAgICAg
ICAgICBpbmZvLnBhdGhFeHRyYUFkdmFuY2UgKz0gc3BhY2luZzsKLQotICAgICAgICAgICAgc3Zn
Q2hhci5wYXRoRGF0YS0+aGlkZGVuID0gIWluZm8ubmV4dFBhdGhMYXlvdXRQb2ludEFuZEFuZ2xl
KGNvcnJlY3RlZEdseXBoQWR2YW5jZSwgZXh0cmFBZHZhbmNlLCBuZXdPZmZzZXQpOwotICAgICAg
ICAgICAgc3ZnQ2hhci5kcmF3blNlcGVyYXRlZCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGluZm8u
cGF0aEV4dHJhQWR2YW5jZSA9IHBhdGhFeHRyYUFkdmFuY2U7Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyBBcHBseSByb3RhdGlvbgotICAgICAgICBpZiAoaW5mby5hbmdsZVZhbHVlQXZhaWxhYmxl
KCkpCi0gICAgICAgICAgICBpbmZvLmFuZ2xlID0gaW5mby5hbmdsZVZhbHVlTmV4dCgpOwotCi0g
ICAgICAgIC8vIEFwcGx5IGJhc2VsaW5lLXNoaWZ0Ci0gICAgICAgIGlmIChpbmZvLmJhc2VsaW5l
U2hpZnRWYWx1ZUF2YWlsYWJsZSgpKSB7Ci0gICAgICAgICAgICBzdmdDaGFyLmRyYXduU2VwZXJh
dGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGZsb2F0IHNoaWZ0ID0gaW5mby5iYXNlbGluZVNoaWZ0
VmFsdWVOZXh0KCk7Ci0KLSAgICAgICAgICAgIGlmIChpc1ZlcnRpY2FsVGV4dCkKLSAgICAgICAg
ICAgICAgICBpbmZvLnNoaWZ0eCArPSBzaGlmdDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBpbmZvLnNoaWZ0eSAtPSBzaGlmdDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRh
a2UgZG9taW5hbnQtYmFzZWxpbmUgLyBhbGlnbm1lbnQtYmFzZWxpbmUgaW50byBhY2NvdW50Ci0g
ICAgICAgIHlPcmllbnRhdGlvblNoaWZ0ICs9IGFsaWdubWVudEJhc2VsaW5lVG9TaGlmdChpc1Zl
cnRpY2FsVGV4dCwgdGV4dFJlbmRlcmVyLCBmb250KTsKLQotICAgICAgICBzdmdDaGFyLnggPSBp
bmZvLmN1cng7Ci0gICAgICAgIHN2Z0NoYXIueSA9IGluZm8uY3VyeTsKLSAgICAgICAgc3ZnQ2hh
ci5hbmdsZSA9IGluZm8uYW5nbGU7Ci0KLSAgICAgICAgLy8gRm9yIHRleHQgcGF0aHMgYW55IHNo
aWZ0IChkeC9keS9iYXNlbGluZS1zaGlmdCkgaGFzIHRvIGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIHJv
dGF0aW9uCi0gICAgICAgIGlmICghaW5mby5pblBhdGhMYXlvdXQoKSkgewotICAgICAgICAgICAg
c3ZnQ2hhci54ICs9IGluZm8uc2hpZnR4ICsgeE9yaWVudGF0aW9uU2hpZnQ7Ci0gICAgICAgICAg
ICBzdmdDaGFyLnkgKz0gaW5mby5zaGlmdHkgKyB5T3JpZW50YXRpb25TaGlmdDsKLQotICAgICAg
ICAgICAgaWYgKG9yaWVudGF0aW9uQW5nbGUgIT0gMC4wZikKLSAgICAgICAgICAgICAgICBzdmdD
aGFyLmFuZ2xlICs9IG9yaWVudGF0aW9uQW5nbGU7Ci0KLSAgICAgICAgICAgIGlmIChzdmdDaGFy
LmFuZ2xlICE9IDAuMGYpCi0gICAgICAgICAgICAgICAgc3ZnQ2hhci5kcmF3blNlcGVyYXRlZCA9
IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdmdDaGFyLnBhdGhEYXRhLT5v
cmllbnRhdGlvbkFuZ2xlID0gb3JpZW50YXRpb25BbmdsZTsKLQotICAgICAgICAgICAgaWYgKGlz
VmVydGljYWxUZXh0KQotICAgICAgICAgICAgICAgIHN2Z0NoYXIuYW5nbGUgLT0gOTAuMGY7Ci0K
LSAgICAgICAgICAgIHN2Z0NoYXIucGF0aERhdGEtPnhTaGlmdCA9IGluZm8uc2hpZnR4ICsgeE9y
aWVudGF0aW9uU2hpZnQ7Ci0gICAgICAgICAgICBzdmdDaGFyLnBhdGhEYXRhLT55U2hpZnQgPSBp
bmZvLnNoaWZ0eSArIHlPcmllbnRhdGlvblNoaWZ0OwotCi0gICAgICAgICAgICAvLyBUcmFuc2xh
dGUgdG8gZ2x5cGggbWlkcG9pbnQKLSAgICAgICAgICAgIGlmIChpc1ZlcnRpY2FsVGV4dCkgewot
ICAgICAgICAgICAgICAgIHN2Z0NoYXIucGF0aERhdGEtPnhTaGlmdCArPSBpbmZvLmR4OwotICAg
ICAgICAgICAgICAgIHN2Z0NoYXIucGF0aERhdGEtPnlTaGlmdCAtPSBnbHlwaEFkdmFuY2UgLyAy
LjBmOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzdmdDaGFyLnBhdGhE
YXRhLT54U2hpZnQgLT0gZ2x5cGhBZHZhbmNlIC8gMi4wZjsKLSAgICAgICAgICAgICAgICBzdmdD
aGFyLnBhdGhEYXRhLT55U2hpZnQgKz0gaW5mby5keTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotCi0gICAgICAgIC8vIEFkdmFuY2UgdG8gbmV3IHBvc2l0aW9uCi0gICAgICAgIGlmIChpc1Zl
cnRpY2FsVGV4dCkgewotICAgICAgICAgICAgc3ZnQ2hhci5kcmF3blNlcGVyYXRlZCA9IHRydWU7
Ci0gICAgICAgICAgICBpbmZvLmN1cnkgKz0gZ2x5cGhBZHZhbmNlICsgc3BhY2luZzsKLSAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBpbmZvLmN1cnggKz0gZ2x5cGhBZHZhbmNlICsgc3BhY2lu
ZzsKLQotICAgICAgICAvLyBBZHZhbmNlIHRvIG5leHQgY2hhcmFjdGVyIGdyb3VwCi0gICAgICAg
IGZvciAoaW50IGsgPSAwOyBrIDwgY2hhcnNDb25zdW1lZDsgKytrKSB7Ci0gICAgICAgICAgICBp
bmZvLnN2Z0NoYXJzLmFwcGVuZChzdmdDaGFyKTsKLSAgICAgICAgICAgIGluZm8ucHJvY2Vzc2Vk
U2luZ2xlQ2hhcmFjdGVyKCk7Ci0gICAgICAgICAgICBzdmdDaGFyLmRyYXduU2VwZXJhdGVkID0g
ZmFsc2U7Ci0gICAgICAgICAgICBzdmdDaGFyLm5ld1RleHRDaHVuayA9IGZhbHNlOwotICAgICAg
ICB9Ci0gICAgfQotfQotCi1GbG9hdFJlY3QgU1ZHSW5saW5lVGV4dEJveDo6Y2FsY3VsYXRlR2x5
cGhCb3VuZGFyaWVzKFJlbmRlclN0eWxlKiBzdHlsZSwgaW50IHBvc2l0aW9uLCBjb25zdCBTVkdD
aGFyJiBjaGFyYWN0ZXIpIGNvbnN0Ci17Ci0gICAgaW50IGNoYXJzQ29uc3VtZWQgPSAwOwotICAg
IFN0cmluZyBnbHlwaE5hbWU7Ci0gICAgU3RyaW5nIHVuaWNvZGVTdHJpbmc7Ci0gICAgZmxvYXQg
Z2x5cGhXaWR0aCA9IDAuMGY7Ci0gICAgZmxvYXQgZ2x5cGhIZWlnaHQgPSAwLjBmOwotICAgIG1l
YXN1cmVDaGFyYWN0ZXIoc3R5bGUsIHBvc2l0aW9uLCBjaGFyc0NvbnN1bWVkLCBnbHlwaE5hbWUs
IHVuaWNvZGVTdHJpbmcsIGdseXBoV2lkdGgsIGdseXBoSGVpZ2h0KTsKLQotICAgIEZsb2F0UmVj
dCBnbHlwaFJlY3QoY2hhcmFjdGVyLngsIGNoYXJhY3Rlci55IC0gc3R5bGUtPmZvbnQoKS5hc2Nl
bnQoKSwgZ2x5cGhXaWR0aCwgZ2x5cGhIZWlnaHQpOwotICAgIGdseXBoUmVjdCA9IGNoYXJhY3Rl
ci5jaGFyYWN0ZXJUcmFuc2Zvcm0oKS5tYXBSZWN0KGdseXBoUmVjdCk7Ci0gICAgaWYgKG1fY2h1
bmtUcmFuc2Zvcm1hdGlvbi5pc0lkZW50aXR5KCkpCi0gICAgICAgIHJldHVybiBnbHlwaFJlY3Q7
Ci0KLSAgICByZXR1cm4gbV9jaHVua1RyYW5zZm9ybWF0aW9uLm1hcFJlY3QoZ2x5cGhSZWN0KTsK
LX0KLQotSW50UmVjdCBTVkdJbmxpbmVUZXh0Qm94OjpjYWxjdWxhdGVCb3VuZGFyaWVzKCkgY29u
c3QKLXsKLSAgICBGbG9hdFJlY3QgdGV4dFJlY3Q7Ci0gICAgaW50IGJhc2VsaW5lID0gYmFzZWxp
bmVQb3NpdGlvbih0cnVlKTsKLQotICAgIGNvbnN0IFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0Pjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9zdmdUZXh0Q2h1bmtQYXJ0cy5lbmQoKTsKLSAgICBmb3Ig
KFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3N2Z1RleHRD
aHVua1BhcnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgdGV4dFJlY3QudW5p
dGUoaXQtPmZpcnN0Q2hhcmFjdGVyLT5jaGFyYWN0ZXJUcmFuc2Zvcm0oKS5tYXBSZWN0KEZsb2F0
UmVjdChpdC0+Zmlyc3RDaGFyYWN0ZXItPngsIGl0LT5maXJzdENoYXJhY3Rlci0+eSAtIGJhc2Vs
aW5lLCBpdC0+d2lkdGgsIGl0LT5oZWlnaHQpKSk7Ci0KLSAgICBpZiAobV9jaHVua1RyYW5zZm9y
bWF0aW9uLmlzSWRlbnRpdHkoKSkKLSAgICAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGV4
dFJlY3QpOwotCi0gICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QobV9jaHVua1RyYW5zZm9ybWF0
aW9uLm1hcFJlY3QodGV4dFJlY3QpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1NWR0lubGluZVRleHRCb3guaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmgJKHJldmlzaW9uIDY4
ODY3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvU1ZHSW5saW5lVGV4dEJveC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+Ci0gKiAgICAgICAgICAgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIFNWR0lubGlu
ZVRleHRCb3hfaAotI2RlZmluZSBTVkdJbmxpbmVUZXh0Qm94X2gKLQotI2lmIEVOQUJMRShTVkcp
Ci0jaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgotI2luY2x1ZGUgIlNWR1RleHRDaHVua0xheW91
dEluZm8uaCIKLSNpbmNsdWRlICJTVkdUZXh0TGF5b3V0VXRpbGl0aWVzLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2U7Ci1jbGFzcyBTVkdSb290SW5s
aW5lQm94OwotCi1zdHJ1Y3QgU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mbzsKLXN0cnVjdCBTVkdMYXN0
R2x5cGhJbmZvOwotCi1jbGFzcyBTVkdJbmxpbmVUZXh0Qm94IDogcHVibGljIElubGluZVRleHRC
b3ggewotcHVibGljOgotICAgIFNWR0lubGluZVRleHRCb3goUmVuZGVyT2JqZWN0Kik7Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNTVkdJbmxpbmVUZXh0Qm94KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQotCi0gICAgdmlydHVhbCBpbnQgdmlydHVhbExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVy
biBtX2xvZ2ljYWxIZWlnaHQ7IH0KLSAgICB2b2lkIHNldExvZ2ljYWxIZWlnaHQoaW50IGhlaWdo
dCkgeyBtX2xvZ2ljYWxIZWlnaHQgPSBoZWlnaHQ7IH0KLQotICAgIHZpcnR1YWwgaW50IHNlbGVj
dGlvblRvcCgpIHsgcmV0dXJuIG1feTsgfQotICAgIHZpcnR1YWwgaW50IHNlbGVjdGlvbkhlaWdo
dCgpIHsgcmV0dXJuIG1fbG9naWNhbEhlaWdodDsgfQotICAgIHZpcnR1YWwgaW50IG9mZnNldEZv
clBvc2l0aW9uKGludCB4LCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cGhzID0gdHJ1ZSkgY29uc3Q7
Ci0gICAgdmlydHVhbCBpbnQgcG9zaXRpb25Gb3JPZmZzZXQoaW50IG9mZnNldCkgY29uc3Q7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOwotICAg
IHZpcnR1YWwgSW50UmVjdCBzZWxlY3Rpb25SZWN0KGludCBhYnN4LCBpbnQgYWJzeSwgaW50IHN0
YXJ0UG9zLCBpbnQgZW5kUG9zKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25TdGFydEVu
ZChpbnQmIHN0YXJ0UG9zLCBpbnQmIGVuZFBvcyk7Ci0gICAgdm9pZCBtYXBTdGFydEVuZFBvc2l0
aW9uc0ludG9DaHVua1BhcnRDb29yZGluYXRlcyhpbnQmIHN0YXJ0UG9zLCBpbnQmIGVuZFBvcywg
Y29uc3QgU1ZHVGV4dENodW5rUGFydCYpIGNvbnN0OwotCi0gICAgU1ZHUm9vdElubGluZUJveCog
c3ZnUm9vdElubGluZUJveCgpIGNvbnN0OwotCi0gICAgLy8gSGVscGVyIGZ1bmN0aW9ucyBzaGFy
ZWQgd2l0aCBTVkdSb290SW5saW5lQm94ICAgICAKLSAgICB2b2lkIG1lYXN1cmVDaGFyYWN0ZXIo
UmVuZGVyU3R5bGUqLCBpbnQgcG9zaXRpb24sIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBn
bHlwaE5hbWUsIFN0cmluZyYgdW5pY29kZVN0cmluZywgZmxvYXQmIGdseXBoV2lkdGgsIGZsb2F0
JiBnbHlwaEhlaWdodCkgY29uc3Q7Ci0gICAgRmxvYXRSZWN0IGNhbGN1bGF0ZUdseXBoQm91bmRh
cmllcyhSZW5kZXJTdHlsZSosIGludCBwb3NpdGlvbiwgY29uc3QgU1ZHQ2hhciYpIGNvbnN0Owot
Ci0gICAgdm9pZCBidWlsZExheW91dEluZm9ybWF0aW9uKFNWR0NoYXJhY3RlckxheW91dEluZm8m
LCBTVkdMYXN0R2x5cGhJbmZvJik7Ci0KLSAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGNodW5r
VHJhbnNmb3JtYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NodW5rVHJhbnNmb3JtYXRpb247IH0K
LSAgICB2b2lkIHNldENodW5rVHJhbnNmb3JtYXRpb24oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0
cmFuc2Zvcm0pIHsgbV9jaHVua1RyYW5zZm9ybWF0aW9uID0gdHJhbnNmb3JtOyB9Ci0gICAgdm9p
ZCBhZGRDaHVua1BhcnRJbmZvcm1hdGlvbihjb25zdCBTVkdUZXh0Q2h1bmtQYXJ0JiBwYXJ0KSB7
IG1fc3ZnVGV4dENodW5rUGFydHMuYXBwZW5kKHBhcnQpOyB9Ci0gICAgY29uc3QgVmVjdG9yPFNW
R1RleHRDaHVua1BhcnQ+JiBzdmdUZXh0Q2h1bmtQYXJ0cygpIGNvbnN0IHsgcmV0dXJuIG1fc3Zn
VGV4dENodW5rUGFydHM7IH0KLQotICAgIHZpcnR1YWwgSW50UmVjdCBjYWxjdWxhdGVCb3VuZGFy
aWVzKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVuKFJl
bmRlclN0eWxlKikgY29uc3Q7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIGJ1aWxkQ2h1bmtUcmFuc2Zv
cm1hdGlvbihTVkdDaGFyJiBmaXJzdENoYXJhY3RlcikgY29uc3Q7Ci0KLSAgICBib29sIGFjcXVp
cmVQYWludGluZ1Jlc291cmNlKEdyYXBoaWNzQ29udGV4dComLCBSZW5kZXJPYmplY3QqLCBSZW5k
ZXJTdHlsZSopOwotICAgIHZvaWQgcmVsZWFzZVBhaW50aW5nUmVzb3VyY2UoR3JhcGhpY3NDb250
ZXh0KiYpOwotCi0gICAgYm9vbCBwcmVwYXJlR3JhcGhpY3NDb250ZXh0Rm9yVGV4dFBhaW50aW5n
KEdyYXBoaWNzQ29udGV4dComLCBUZXh0UnVuJiwgUmVuZGVyU3R5bGUqKTsKLSAgICB2b2lkIHJl
c3RvcmVHcmFwaGljc0NvbnRleHRBZnRlclRleHRQYWludGluZyhHcmFwaGljc0NvbnRleHQqJiwg
VGV4dFJ1biYpOwotCi0gICAgdm9pZCBjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVjdChSZW5kZXJT
dHlsZSopOwotICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UG9pbnQmIHRleHRPcmlnaW4sIEVUZXh0RGVjb3JhdGlvbiwgYm9vbCBoYXNTZWxlY3Rp
b24pOwotICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uV2l0aFN0eWxlKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEZsb2F0UG9pbnQmIHRleHRPcmlnaW4sIFJlbmRlck9iamVjdCosIEVUZXh0RGVjb3Jh
dGlvbik7Ci0gICAgdm9pZCBwYWludFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBG
bG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBSZW5kZXJTdHlsZSopOwotICAgIHZvaWQgcGFpbnRUZXh0
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIHRleHRPcmlnaW4sIFJlbmRlclN0
eWxlKiwgUmVuZGVyU3R5bGUqIHNlbGVjdGlvblN0eWxlLCBib29sIGhhc1NlbGVjdGlvbiwgYm9v
bCBwYWludFNlbGVjdGVkVGV4dE9ubHkpOwotICAgIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwgUmVuZGVyU3R5
bGUqLCBUZXh0UnVuJiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKLQotICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yVGV4dENodW5rUGFydChjb25zdCBTVkdUZXh0Q2h1bmtQYXJ0Jiwg
aW50IHBhcnRTdGFydFBvcywgaW50IHBhcnRFbmRQb3MsIFJlbmRlclN0eWxlKik7Ci0KLXByaXZh
dGU6Ci0gICAgaW50IG1fbG9naWNhbEhlaWdodDsKLSAgICBBZmZpbmVUcmFuc2Zvcm0gbV9jaHVu
a1RyYW5zZm9ybWF0aW9uOwotICAgIFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0PiBtX3N2Z1RleHRD
aHVua1BhcnRzOwotICAgIG11dGFibGUgU1ZHVGV4dENodW5rUGFydCBtX2N1cnJlbnRDaHVua1Bh
cnQ7Ci0gICAgUmVuZGVyU1ZHUmVzb3VyY2UqIG1fcGFpbnRpbmdSZXNvdXJjZTsKLSAgICBpbnQg
bV9wYWludGluZ1Jlc291cmNlTW9kZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmCi0jZW5kaWYgLy8gU1ZHSW5saW5lVGV4dEJveF9oCkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9TVkdSb290SW5saW5lQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9TVkdSb290SW5saW5lQm94LmNwcAkocmV2aXNpb24gNjg4NjcpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9TVkdSb290SW5saW5lQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzNjQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBPbGl2ZXIgSHVudCA8b2poMTZAc3R1ZGVudC5j
YW50ZXJidXJ5LmFjLm56PgotICogICAgICAgICAgIChDKSAyMDA2IEFwcGxlIENvbXB1dGVyIElu
Yy4KLSAqICAgICAgICAgICAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJTVkdSb290SW5saW5lQm94LmgiCi0KLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSAiU1ZHSW5s
aW5lRmxvd0JveC5oIgotI2luY2x1ZGUgIlNWR0lubGluZVRleHRCb3guaCIKLSNpbmNsdWRlICJT
VkdSZW5kZXJTdXBwb3J0LmgiCi0jaW5jbHVkZSAiU1ZHVGV4dExheW91dFV0aWxpdGllcy5oIgot
I2luY2x1ZGUgIlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCIKLQotLy8gVGV4dCBjaHVuayBw
YXJ0IHByb3BhZ2F0aW9uIGNhbiBiZSB0cmFjZWQgYnkgc2V0dGluZyB0aGlzIHZhcmlhYmxlID4g
MC4KLSNkZWZpbmUgREVCVUdfQ0hVTktfUEFSVF9QUk9QQUdBVElPTiAwCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdm9pZCBTVkdSb290SW5saW5lQm94OjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgaW50LCBpbnQpCi17Ci0gICAgQVNTRVJUKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBo
YXNlRm9yZWdyb3VuZCB8fCBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7
Ci0gICAgQVNTRVJUKCFwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKTsKLQot
ICAgIFJlbmRlck9iamVjdCogYm94UmVuZGVyZXIgPSByZW5kZXJlcigpOwotICAgIEFTU0VSVChi
b3hSZW5kZXJlcik7Ci0KLSAgICBQYWludEluZm8gY2hpbGRQYWludEluZm8ocGFpbnRJbmZvKTsK
LSAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7Ci0KLSAgICBpZiAoU1ZHUmVuZGVy
U3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChib3hSZW5kZXJlciwgY2hpbGRQYWlu
dEluZm8pKSB7Ci0gICAgICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkKLSAgICAgICAgICAgIGNoaWxkLT5w
YWludChjaGlsZFBhaW50SW5mbywgMCwgMCk7Ci0gICAgfQotCi0gICAgU1ZHUmVuZGVyU3VwcG9y
dDo6ZmluaXNoUmVuZGVyU1ZHQ29udGVudChib3hSZW5kZXJlciwgY2hpbGRQYWludEluZm8sIHBh
aW50SW5mby5jb250ZXh0KTsKLSAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5yZXN0b3JlKCk7
Ci19Ci0KLXZvaWQgU1ZHUm9vdElubGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dElu
Zm9ybWF0aW9uKCkKLXsKLSAgICAvLyBDbGVhbiB1cCBhbnkgcHJldmlvdXMgbGF5b3V0IGluZm9y
bWF0aW9uCi0gICAgbV9zdmdDaGFycy5jbGVhcigpOwotICAgIG1fc3ZnVGV4dENodW5rcy5jbGVh
cigpOwotCi0gICAgLy8gQnVpbGQgbGF5b3V0IGluZm9ybWF0aW9uIGZvciBhbGwgY29udGFpbmVk
IHJlbmRlciBvYmplY3RzCi0gICAgU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mbyBjaGFySW5mbzsKLSAg
ICBidWlsZExheW91dEluZm9ybWF0aW9uKHRoaXMsIGNoYXJJbmZvKTsKLSAgICBtX3N2Z0NoYXJz
ID0gY2hhckluZm8uc3ZnQ2hhcnM7Ci0KLSAgICAvLyBOb3cgYWxsIGxheW91dCBpbmZvcm1hdGlv
biBhcmUgYXZhaWxhYmxlIGZvciBldmVyeSBjaGFyYWN0ZXIKLSAgICAvLyBjb250YWluZWQgaW4g
YW55IG9mIG91ciBjaGlsZCBpbmxpbmUvZmxvdyBib3hlcy4gQnVpbGQgbGlzdAotICAgIC8vIG9m
IHRleHQgY2h1bmtzIG5vdywgdG8gYmUgYWJsZSB0byBhcHBseSB0ZXh0LWFuY2hvciBzaGlmdHMu
Ci0gICAgU1ZHVGV4dENodW5rTGF5b3V0SW5mbyBjaHVua0luZm87Ci0gICAgY2h1bmtJbmZvLmJ1
aWxkVGV4dENodW5rcyhtX3N2Z0NoYXJzLmJlZ2luKCksIG1fc3ZnQ2hhcnMuZW5kKCksIHRoaXMp
OwotCi0gICAgLy8gTGF5b3V0IGFsbCB0ZXh0IGNodW5rcwotICAgIC8vIHRleHQtYW5jaG9yIG5l
ZWRzIHRvIGJlIGFwcGxpZWQgdG8gaW5kaXZpZHVhbCBjaHVua3MuCi0gICAgY2h1bmtJbmZvLmxh
eW91dFRleHRDaHVua3MoKTsKLSAgICBtX3N2Z1RleHRDaHVua3MgPSBjaHVua0luZm8udGV4dENo
dW5rcygpOwotCi0gICAgLy8gUHJvcGFnYXRlIHRleHQgY2h1bmsgcGFydCBpbmZvcm1hdGlvbiB0
byBhbGwgU1ZHSW5saW5lVGV4dEJveGVzLCBzZWUgU1ZHVGV4dENodW5rTGF5b3V0SW5mby5oIGZv
ciBkZXRhaWxzCi0gICAgcHJvcGFnYXRlVGV4dENodW5rUGFydEluZm9ybWF0aW9uKCk7Ci0KLSAg
ICAvLyBMYXlvdXQgYWxsIGNoaWxkIGJveGVzLgotICAgIGxheW91dENoaWxkQm94ZXModGhpcyk7
Ci0KLSAgICAvLyBSZXNpemUgb3VyIHJvb3QgYm94IGFuZCBvdXIgUmVuZGVyU1ZHVGV4dCBwYXJl
bnQgYmxvY2sKLSAgICBsYXlvdXRSb290Qm94KCk7Ci19Ci0KLXZvaWQgU1ZHUm9vdElubGluZUJv
eDo6YnVpbGRMYXlvdXRJbmZvcm1hdGlvbihJbmxpbmVGbG93Qm94KiBzdGFydCwgU1ZHQ2hhcmFj
dGVyTGF5b3V0SW5mbyYgaW5mbykKLXsKLSAgICBpZiAoc3RhcnQtPmlzUm9vdElubGluZUJveCgp
KSB7Ci0gICAgICAgIEFTU0VSVChzdGFydC0+cmVuZGVyZXIoKS0+bm9kZSgpLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjp0ZXh0VGFnKSk7Ci0KLSAgICAgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dCogcG9zaXRpb25pbmdFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudCo+KHN0YXJ0LT5yZW5kZXJlcigpLT5ub2RlKCkpOwotICAgICAgICBBU1NFUlQocG9zaXRp
b25pbmdFbGVtZW50KTsKLSAgICAgICAgQVNTRVJUKHBvc2l0aW9uaW5nRWxlbWVudC0+cGFyZW50
Tm9kZSgpKTsKLQotICAgICAgICBpbmZvLmFkZExheW91dEluZm9ybWF0aW9uKHBvc2l0aW9uaW5n
RWxlbWVudCk7Ci0gICAgfQotCi0gICAgU1ZHTGFzdEdseXBoSW5mbyBsYXN0R2x5cGg7Ci0gICAg
Ci0gICAgZm9yIChJbmxpbmVCb3gqIGN1cnIgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjdXJyOyBj
dXJyID0gY3Vyci0+bmV4dE9uTGluZSgpKSB7Ci0gICAgICAgIGlmIChjdXJyLT5yZW5kZXJlcigp
LT5pc1RleHQoKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PFNWR0lubGluZVRleHRCb3gqPihj
dXJyKS0+YnVpbGRMYXlvdXRJbmZvcm1hdGlvbihpbmZvLCBsYXN0R2x5cGgpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChjdXJyLT5pc0lubGluZUZsb3dCb3goKSk7Ci0gICAg
ICAgICAgICBJbmxpbmVGbG93Qm94KiBmbG93Qm94ID0gc3RhdGljX2Nhc3Q8SW5saW5lRmxvd0Jv
eCo+KGN1cnIpOwotCi0gICAgICAgICAgICAvLyBTa2lwIGdlbmVyYXRlZCBjb250ZW50LgotICAg
ICAgICAgICAgaWYgKCFmbG93Qm94LT5yZW5kZXJlcigpLT5ub2RlKCkpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGJvb2wgaXNBbmNob3IgPSBmbG93Qm94LT5yZW5k
ZXJlcigpLT5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFUYWcpOwotICAgICAgICAgICAg
Ym9vbCBpc1RleHRQYXRoID0gZmxvd0JveC0+cmVuZGVyZXIoKS0+bm9kZSgpLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjp0ZXh0UGF0aFRhZyk7Ci0KLSAgICAgICAgICAgIGlmICghaXNUZXh0UGF0aCAm
JiAhaXNBbmNob3IpIHsKLSAgICAgICAgICAgICAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
KiBwb3NpdGlvbmluZ0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50Kj4oZmxvd0JveC0+cmVuZGVyZXIoKS0+bm9kZSgpKTsKLSAgICAgICAgICAgICAgICBBU1NF
UlQocG9zaXRpb25pbmdFbGVtZW50KTsKLSAgICAgICAgICAgICAgICBBU1NFUlQocG9zaXRpb25p
bmdFbGVtZW50LT5wYXJlbnROb2RlKCkpOwotCi0gICAgICAgICAgICAgICAgaW5mby5hZGRMYXlv
dXRJbmZvcm1hdGlvbihwb3NpdGlvbmluZ0VsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNlIGlm
ICghaXNBbmNob3IpIHsKLSAgICAgICAgICAgICAgICBpbmZvLnNldEluUGF0aExheW91dCh0cnVl
KTsKLQotICAgICAgICAgICAgICAgIC8vIEhhbmRsZSB0ZXh0LWFuY2hvci90ZXh0TGVuZ3RoIG9u
IHBhdGgsIHdoaWNoIGlzIHNwZWNpYWwuCi0gICAgICAgICAgICAgICAgU1ZHVGV4dENvbnRlbnRF
bGVtZW50KiB0ZXh0Q29udGVudCA9IDA7Ci0gICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGZs
b3dCb3gtPnJlbmRlcmVyKCktPm5vZGUoKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZSAmJiBu
b2RlLT5pc1NWR0VsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgdGV4dENvbnRlbnQgPSBz
dGF0aWNfY2FzdDxTVkdUZXh0Q29udGVudEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgICAgICAg
ICBBU1NFUlQodGV4dENvbnRlbnQpOwotCi0gICAgICAgICAgICAgICAgRUxlbmd0aEFkanVzdCBs
ZW5ndGhBZGp1c3QgPSAoRUxlbmd0aEFkanVzdCkgdGV4dENvbnRlbnQtPmxlbmd0aEFkanVzdCgp
OwotICAgICAgICAgICAgICAgIEVUZXh0QW5jaG9yIGFuY2hvciA9IGZsb3dCb3gtPnJlbmRlcmVy
KCktPnN0eWxlKCktPnN2Z1N0eWxlKCktPnRleHRBbmNob3IoKTsKLSAgICAgICAgICAgICAgICBm
bG9hdCB0ZXh0QW5jaG9yU3RhcnRPZmZzZXQgPSAwLjBmOwotCi0gICAgICAgICAgICAgICAgLy8g
SW5pdGlhbGl6ZSBzdWItbGF5b3V0LiBXZSBuZWVkIHRvIGNyZWF0ZSB0ZXh0IGNodW5rcyBmcm9t
IHRoZSB0ZXh0UGF0aAotICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuIHVzaW5nIG91ciBzdGFu
ZGFyZCBsYXlvdXQgY29kZSwgdG8gYmUgYWJsZSB0byBtZWFzdXJlIHRoZQotICAgICAgICAgICAg
ICAgIC8vIHRleHQgbGVuZ3RoIHVzaW5nIG91ciBub3JtYWwgbWV0aG9kcyBhbmQgbm90IHRleHRQ
YXRoIHNwZWNpZmljIGhhY2tzLgotICAgICAgICAgICAgICAgIFZlY3RvcjxTVkdUZXh0Q2h1bms+
IHRlbXBDaHVua3M7Ci0KLSAgICAgICAgICAgICAgICBTVkdDaGFyYWN0ZXJMYXlvdXRJbmZvIHRl
bXBDaGFySW5mbzsKLSAgICAgICAgICAgICAgICBidWlsZExheW91dEluZm9ybWF0aW9uKGZsb3dC
b3gsIHRlbXBDaGFySW5mbyk7Ci0KLSAgICAgICAgICAgICAgICBTVkdUZXh0Q2h1bmtMYXlvdXRJ
bmZvIHRlbXBDaHVua0luZm87Ci0gICAgICAgICAgICAgICAgdGVtcENodW5rSW5mby5idWlsZFRl
eHRDaHVua3ModGVtcENoYXJJbmZvLnN2Z0NoYXJzLmJlZ2luKCksIHRlbXBDaGFySW5mby5zdmdD
aGFycy5lbmQoKSwgZmxvd0JveCk7Ci0gICAgICAgICAgICAgICAgdGVtcENodW5rcyA9IHRlbXBD
aHVua0luZm8udGV4dENodW5rcygpOwotCi0gICAgICAgICAgICAgICAgVmVjdG9yPFNWR1RleHRD
aHVuaz46Oml0ZXJhdG9yIGl0ID0gdGVtcENodW5rcy5iZWdpbigpOwotICAgICAgICAgICAgICAg
IFZlY3RvcjxTVkdUZXh0Q2h1bms+OjppdGVyYXRvciBlbmQgPSB0ZW1wQ2h1bmtzLmVuZCgpOwot
Ci0gICAgICAgICAgICAgICAgZmxvYXQgY29tcHV0ZWRMZW5ndGggPSAwLjBmOwotIAotICAgICAg
ICAgICAgICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAgICAgICAgICAg
U1ZHVGV4dENodW5rJiBjaHVuayA9ICppdDsKLQotICAgICAgICAgICAgICAgICAgICAvLyBBcHBs
eSB0ZXh0LWxlbmd0aCBjYWxjdWxhdGlvbgotICAgICAgICAgICAgICAgICAgICBpbmZvLnBhdGhF
eHRyYUFkdmFuY2UgKz0gY2FsY3VsYXRlVGV4dExlbmd0aENvcnJlY3Rpb25Gb3JUZXh0Q2h1bmso
Y2h1bmssIGxlbmd0aEFkanVzdCwgY29tcHV0ZWRMZW5ndGgpOwotCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChsZW5ndGhBZGp1c3QgPT0gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpMRU5HVEhBREpV
U1RfU1BBQ0lOR0FOREdMWVBIUykgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5wYXRo
VGV4dExlbmd0aCArPSBjb21wdXRlZExlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlu
Zm8ucGF0aENodW5rTGVuZ3RoICs9IGNodW5rLnRleHRMZW5ndGg7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGV4dC1hbmNob3Igc3Rh
cnQgb2Zmc2V0Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhbmNob3IgPT0gVEFfU1RBUlQpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgICAgICAgICB0
ZXh0QW5jaG9yU3RhcnRPZmZzZXQgKz0gY2FsY3VsYXRlVGV4dEFuY2hvclNoaWZ0Rm9yVGV4dENo
dW5rKGNodW5rLCBhbmNob3IpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg
IGluZm8uYWRkTGF5b3V0SW5mb3JtYXRpb24oZmxvd0JveCwgdGV4dEFuY2hvclN0YXJ0T2Zmc2V0
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZmxvYXQgc2hpZnR4U2F2ZWQgPSBpbmZv
LnNoaWZ0eDsKLSAgICAgICAgICAgIGZsb2F0IHNoaWZ0eVNhdmVkID0gaW5mby5zaGlmdHk7Ci0K
LSAgICAgICAgICAgIGJ1aWxkTGF5b3V0SW5mb3JtYXRpb24oZmxvd0JveCwgaW5mbyk7Ci0gICAg
ICAgICAgICBpbmZvLnByb2Nlc3NlZENodW5rKHNoaWZ0eFNhdmVkLCBzaGlmdHlTYXZlZCk7Ci0K
LSAgICAgICAgICAgIGlmIChpc1RleHRQYXRoKQotICAgICAgICAgICAgICAgIGluZm8uc2V0SW5Q
YXRoTGF5b3V0KGZhbHNlKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotdm9pZCBTVkdSb290SW5s
aW5lQm94OjpsYXlvdXRDaGlsZEJveGVzKElubGluZUZsb3dCb3gqIHN0YXJ0KQotewotICAgIGZv
ciAoSW5saW5lQm94KiBjaGlsZCA9IHN0YXJ0LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0T25MaW5lKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5yZW5kZXJlcigpLT5p
c1RleHQoKSkgewotICAgICAgICAgICAgU1ZHSW5saW5lVGV4dEJveCogdGV4dEJveCA9IHN0YXRp
Y19jYXN0PFNWR0lubGluZVRleHRCb3gqPihjaGlsZCk7Ci0gICAgICAgICAgICBJbnRSZWN0IGJv
eFJlY3QgPSB0ZXh0Qm94LT5jYWxjdWxhdGVCb3VuZGFyaWVzKCk7Ci0gICAgICAgICAgICB0ZXh0
Qm94LT5zZXRYKGJveFJlY3QueCgpKTsKLSAgICAgICAgICAgIHRleHRCb3gtPnNldFkoYm94UmVj
dC55KCkpOwotICAgICAgICAgICAgdGV4dEJveC0+c2V0TG9naWNhbFdpZHRoKGJveFJlY3Qud2lk
dGgoKSk7Ci0gICAgICAgICAgICB0ZXh0Qm94LT5zZXRMb2dpY2FsSGVpZ2h0KGJveFJlY3QuaGVp
Z2h0KCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKGNoaWxkLT5pc0lu
bGluZUZsb3dCb3goKSk7Ci0gICAKLSAgICAgICAgICAgIC8vIFNraXAgZ2VuZXJhdGVkIGNvbnRl
bnQuCi0gICAgICAgICAgICBpZiAoIWNoaWxkLT5yZW5kZXJlcigpLT5ub2RlKCkpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIFNWR0lubGluZUZsb3dCb3gqIGZsb3dC
b3ggPSBzdGF0aWNfY2FzdDxTVkdJbmxpbmVGbG93Qm94Kj4oY2hpbGQpOwotICAgICAgICAgICAg
bGF5b3V0Q2hpbGRCb3hlcyhmbG93Qm94KTsKLQotICAgICAgICAgICAgSW50UmVjdCBib3hSZWN0
ID0gZmxvd0JveC0+Y2FsY3VsYXRlQm91bmRhcmllcygpOwotICAgICAgICAgICAgZmxvd0JveC0+
c2V0WChib3hSZWN0LngoKSk7Ci0gICAgICAgICAgICBmbG93Qm94LT5zZXRZKGJveFJlY3QueSgp
KTsKLSAgICAgICAgICAgIGZsb3dCb3gtPnNldExvZ2ljYWxXaWR0aChib3hSZWN0LndpZHRoKCkp
OwotICAgICAgICAgICAgZmxvd0JveC0+c2V0TG9naWNhbEhlaWdodChib3hSZWN0LmhlaWdodCgp
KTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotdm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlvdXRS
b290Qm94KCkKLXsKLSAgICBSZW5kZXJCbG9jayogcGFyZW50QmxvY2sgPSBibG9jaygpOwotICAg
IEFTU0VSVChwYXJlbnRCbG9jayk7Ci0KLSAgICBJbnRSZWN0IGNoaWxkUmVjdDsKLSAgICBmb3Ig
KElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0T25MaW5lKCkpIHsKLSAgICAgICAgLy8gU2tpcCBnZW5lcmF0ZWQgY29udGVudC4KLSAgICAg
ICAgaWYgKCFjaGlsZC0+cmVuZGVyZXIoKS0+bm9kZSgpKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIGNoaWxkUmVjdC51bml0ZShjaGlsZC0+Y2FsY3VsYXRlQm91bmRhcmllcygpKTsK
LSAgICB9Ci0KLSAgICBpbnQgeEJsb2NrID0gY2hpbGRSZWN0LngoKTsKLSAgICBpbnQgeUJsb2Nr
ID0gY2hpbGRSZWN0LnkoKTsKLSAgICBpbnQgd2lkdGhCbG9jayA9IGNoaWxkUmVjdC53aWR0aCgp
OwotICAgIGludCBoZWlnaHRCbG9jayA9IGNoaWxkUmVjdC5oZWlnaHQoKTsKLQotICAgIC8vIEZp
bmFsbHksIGFzc2lnbiB0aGUgcm9vdCBibG9jayBwb3NpdGlvbiwgbm93IHRoYXQgYWxsIGNvbnRl
bnQgaXMgbGFpZCBvdXQuCi0gICAgcGFyZW50QmxvY2stPnNldExvY2F0aW9uKHhCbG9jaywgeUJs
b2NrKTsKLSAgICBwYXJlbnRCbG9jay0+c2V0V2lkdGgod2lkdGhCbG9jayk7Ci0gICAgcGFyZW50
QmxvY2stPnNldEhlaWdodChoZWlnaHRCbG9jayk7Ci0KLSAgICAvLyBQb3NpdGlvbiBhbGwgY2hp
bGRyZW4gcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBibG9jay4KLSAgICBmb3IgKElubGluZUJveCog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkp
IHsKLSAgICAgICAgLy8gU2tpcCBnZW5lcmF0ZWQgY29udGVudC4KLSAgICAgICAgaWYgKCFjaGls
ZC0+cmVuZGVyZXIoKS0+bm9kZSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNo
aWxkLT5hZGp1c3RQb3NpdGlvbigteEJsb2NrLCAteUJsb2NrKTsKLSAgICB9Ci0KLSAgICAvLyBQ
b3NpdGlvbiBvdXJzZWx2ZXMuCi0gICAgc2V0WCgwKTsKLSAgICBzZXRZKDApOwotICAgIHNldExv
Z2ljYWxXaWR0aCh3aWR0aEJsb2NrKTsKLSAgICBzZXRMb2dpY2FsSGVpZ2h0KGhlaWdodEJsb2Nr
KTsKLSAgICBzZXRCbG9ja0hlaWdodChoZWlnaHRCbG9jayk7Ci0gICAgc2V0TGluZVRvcEJvdHRv
bVBvc2l0aW9ucygwLCBoZWlnaHRCbG9jayk7Ci19Ci0KLXZvaWQgU1ZHUm9vdElubGluZUJveDo6
cHJvcGFnYXRlVGV4dENodW5rUGFydEluZm9ybWF0aW9uKCkKLXsKLSNpZiBERUJVR19DSFVOS19Q
QVJUX1BST1BBR0FUSU9OID4gMAotICAgIExpc3RIYXNoU2V0PFNWR0lubGluZVRleHRCb3gqPiBi
b3hlczsKLSNlbmRpZgotCi0gICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB0ZXh0IGNodW5rcwotICAg
IGNvbnN0IFZlY3RvcjxTVkdUZXh0Q2h1bms+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3N2Z1Rl
eHRDaHVua3MuZW5kKCk7Ci0gICAgZm9yIChWZWN0b3I8U1ZHVGV4dENodW5rPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX3N2Z1RleHRDaHVua3MuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0g
ICAgICAgIGNvbnN0IFNWR1RleHRDaHVuayYgY2h1bmsgPSAqaXQ7Ci0gICAgICAgIGludCBwcm9j
ZXNzZWRDaHVua0NoYXJhY3RlcnMgPSAwOwotCi0gICAgICAgIC8vIExvb3AgdGhyb3VnaCBhbGwg
cmFuZ2VzIGNvbnRhaW5lZCBpbiB0aGlzIGNodW5rCi0gICAgICAgIGNvbnN0IFZlY3RvcjxTVkdJ
bmxpbmVCb3hDaGFyYWN0ZXJSYW5nZT46OmNvbnN0X2l0ZXJhdG9yIGJveEVuZCA9IGNodW5rLmJv
eGVzLmVuZCgpOwotICAgICAgICBmb3IgKFZlY3RvcjxTVkdJbmxpbmVCb3hDaGFyYWN0ZXJSYW5n
ZT46OmNvbnN0X2l0ZXJhdG9yIGJveEl0ID0gY2h1bmsuYm94ZXMuYmVnaW4oKTsgYm94SXQgIT0g
Ym94RW5kOyArK2JveEl0KSB7Ci0gICAgICAgICAgICBjb25zdCBTVkdJbmxpbmVCb3hDaGFyYWN0
ZXJSYW5nZSYgcmFuZ2UgPSAqYm94SXQ7Ci0gICAgICAgICAgICBBU1NFUlQocmFuZ2UuYm94LT5p
c1NWR0lubGluZVRleHRCb3goKSk7Ci0KLSAgICAgICAgICAgIC8vIEFjY2VzcyBzdHlsZSAmIGZv
bnQgaW5mb3JtYXRpb24gb2YgdGhpcyB0ZXh0IGJveAotICAgICAgICAgICAgU1ZHSW5saW5lVGV4
dEJveCogcmFuZ2VUZXh0Qm94ID0gc3RhdGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJveCo+KHJhbmdl
LmJveCk7Ci0gICAgICAgICAgICByYW5nZVRleHRCb3gtPnNldENodW5rVHJhbnNmb3JtYXRpb24o
Y2h1bmsuY3RtKTsKLQotICAgICAgICAgICAgUmVuZGVyVGV4dCogdGV4dCA9IHJhbmdlVGV4dEJv
eC0+dGV4dFJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBBU1NFUlQodGV4dCk7Ci0KLSAgICAgICAg
ICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHRleHQtPnN0eWxlKCk7Ci0gICAgICAgICAgICBBU1NF
UlQoc3R5bGUpOwotCi0gICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUtPmZvbnQo
KTsKLSAKLSAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgZmlyc3QgYW5kIGxhc3QgY2hhcmFjdGVy
IG9mIHRoaXMgcmFuZ2UgaW4gdGhpcyBjaHVuawotICAgICAgICAgICAgaW50IHJhbmdlTGVuZ3Ro
ID0gcmFuZ2UuZW5kT2Zmc2V0IC0gcmFuZ2Uuc3RhcnRPZmZzZXQ7Ci0gICAgICAgICAgICBWZWN0
b3I8U1ZHQ2hhcj46Oml0ZXJhdG9yIGl0Q2hhckJlZ2luID0gY2h1bmsuc3RhcnQgKyBwcm9jZXNz
ZWRDaHVua0NoYXJhY3RlcnM7Ci0gICAgICAgICAgICBWZWN0b3I8U1ZHQ2hhcj46Oml0ZXJhdG9y
IGl0Q2hhckVuZCA9IGNodW5rLnN0YXJ0ICsgcHJvY2Vzc2VkQ2h1bmtDaGFyYWN0ZXJzICsgcmFu
Z2VMZW5ndGg7Ci0gICAgICAgICAgICBBU1NFUlQoaXRDaGFyRW5kIDw9IGNodW5rLmVuZCk7Ci0K
LSAgICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgY2hhcmFjdGVycyBpbiByYW5nZSAKLSAg
ICAgICAgICAgIGludCBwcm9jZXNzZWRSYW5nZUNoYXJhY3RlcnMgPSAwOwotICAgICAgICAgICAg
Zm9yIChWZWN0b3I8U1ZHQ2hhcj46Oml0ZXJhdG9yIGl0Q2hhciA9IGl0Q2hhckJlZ2luOyBpdENo
YXIgIT0gaXRDaGFyRW5kOyArK2l0Q2hhcikgewotICAgICAgICAgICAgICAgIGlmIChpdENoYXIt
PmlzSGlkZGVuKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgKytwcm9jZXNzZWRSYW5nZUNoYXJh
Y3RlcnM7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgIC8vIERldGVybWluZSBob3cgbWFueSBjaGFyYWN0ZXJzIC0gc3Rh
cnRpbmcgZnJvbSB0aGUgY3VycmVudCAtIGNhbiBiZSBkcmF3biBhdCBvbmNlLgotICAgICAgICAg
ICAgICAgIFZlY3RvcjxTVkdDaGFyPjo6aXRlcmF0b3IgaXRTZWFyY2ggPSBpdENoYXIgKyAxOwot
ICAgICAgICAgICAgICAgIHdoaWxlIChpdFNlYXJjaCAhPSBpdENoYXJFbmQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGl0U2VhcmNoLT5kcmF3blNlcGVyYXRlZCB8fCBpdFNlYXJjaC0+aXNI
aWRkZW4oKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAg
ICAgICAgICsraXRTZWFyY2g7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
Ly8gQ2FsY3VsYXRlIHRleHQgY2h1bmsgcGFydCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBjaHVuayBz
dWItcmFuZ2UKLSAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogcGFydFN0YXJ0ID0gdGV4dC0+
Y2hhcmFjdGVycygpICsgcmFuZ2VUZXh0Qm94LT5zdGFydCgpICsgcmFuZ2Uuc3RhcnRPZmZzZXQg
KyBwcm9jZXNzZWRSYW5nZUNoYXJhY3RlcnM7Ci0KLSAgICAgICAgICAgICAgICBTVkdUZXh0Q2h1
bmtQYXJ0IHBhcnQ7Ci0gICAgICAgICAgICAgICAgcGFydC5maXJzdENoYXJhY3RlciA9IGl0Q2hh
cjsKLSAgICAgICAgICAgICAgICBwYXJ0Lmxlbmd0aCA9IGl0U2VhcmNoIC0gaXRDaGFyOwotICAg
ICAgICAgICAgICAgIHBhcnQud2lkdGggPSBmb250LmZsb2F0V2lkdGgoc3ZnVGV4dFJ1bkZvcklu
bGluZVRleHRCb3gocGFydFN0YXJ0LCBwYXJ0Lmxlbmd0aCwgc3R5bGUsIHJhbmdlVGV4dEJveCkp
OwotICAgICAgICAgICAgICAgIHBhcnQuaGVpZ2h0ID0gZm9udC5oZWlnaHQoKTsKLSAgICAgICAg
ICAgICAgICBwYXJ0Lm9mZnNldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0ICsgcHJvY2Vzc2VkUmFuZ2VD
aGFyYWN0ZXJzOwotICAgICAgICAgICAgICAgIHJhbmdlVGV4dEJveC0+YWRkQ2h1bmtQYXJ0SW5m
b3JtYXRpb24ocGFydCk7Ci0gICAgICAgICAgICAgICAgcHJvY2Vzc2VkUmFuZ2VDaGFyYWN0ZXJz
ICs9IHBhcnQubGVuZ3RoOwotCi0gICAgICAgICAgICAgICAgLy8gU2tpcCBwcm9jZXNzZWQgY2hh
cmFjdGVycwotICAgICAgICAgICAgICAgIGl0Q2hhciA9IGl0U2VhcmNoIC0gMTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgQVNTRVJUKHByb2Nlc3NlZFJhbmdlQ2hhcmFjdGVycyA9PSBy
YW5nZUxlbmd0aCk7Ci0gICAgICAgICAgICBwcm9jZXNzZWRDaHVua0NoYXJhY3RlcnMgKz0gcmFu
Z2VMZW5ndGg7Ci0KLSNpZiBERUJVR19DSFVOS19QQVJUX1BST1BBR0FUSU9OID4gMAotICAgICAg
ICAgICAgYm94ZXMuYWRkKHJhbmdlVGV4dEJveCk7Ci0jZW5kaWYKLSAgICAgICAgfQotICAgIH0K
LQotI2lmIERFQlVHX0NIVU5LX1BBUlRfUFJPUEFHQVRJT04gPiAwCi0gICAgewotICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIlByb3BhZ2F0ZWQgdGV4dCBjaHVuayBwYXJ0IGluZm9ybWF0aW9uOlxu
Iik7Ci0KLSAgICAgICAgTGlzdEhhc2hTZXQ8U1ZHSW5saW5lVGV4dEJveCo+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IGJveGVzLmJlZ2luKCk7Ci0gICAgICAgIGNvbnN0IExpc3RIYXNoU2V0PFNWR0lu
bGluZVRleHRCb3gqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gYm94ZXMuZW5kKCk7Ci0KLSAgICAg
ICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgY29uc3QgU1ZHSW5saW5l
VGV4dEJveCogYm94ID0gKml0OwotICAgICAgICAgICAgY29uc3QgVmVjdG9yPFNWR1RleHRDaHVu
a1BhcnQ+JiBwYXJ0cyA9IGJveC0+c3ZnVGV4dENodW5rUGFydHMoKTsKLQotICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIgQm94ICVwIGNvbnRhaW5zICVpIHRleHQgY2h1bmsgcGFydHM6XG4i
LCBib3gsIHN0YXRpY19jYXN0PGludD4ocGFydHMuc2l6ZSgpKSk7Ci0gICAgICAgICAgICBWZWN0
b3I8U1ZHVGV4dENodW5rUGFydD46OmNvbnN0X2l0ZXJhdG9yIHBhcnRJdCA9IHBhcnRzLmJlZ2lu
KCk7Ci0gICAgICAgICAgICBjb25zdCBWZWN0b3I8U1ZHVGV4dENodW5rUGFydD46OmNvbnN0X2l0
ZXJhdG9yIHBhcnRFbmQgPSBwYXJ0cy5lbmQoKTsKLSAgICAgICAgICAgIGZvciAoOyBwYXJ0SXQg
IT0gcGFydEVuZDsgKytwYXJ0SXQpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBTVkdUZXh0Q2h1
bmtQYXJ0JiBwYXJ0ID0gKnBhcnRJdDsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiAgIC0+IGZpcnN0Q2hhcmFjdGVyIHg9JWxmLCB5PSVsZiwgb2Zmc2V0PSVpLCBsZW5ndGg9JWks
IHdpZHRoPSVsZiwgaGVpZ2h0PSVsZiwgdGV4dFJlbmRlcmVyPSVwXG4iCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAsIHBhcnQuZmlyc3RDaGFyYWN0ZXItPngsIHBhcnQuZmlyc3RDaGFy
YWN0ZXItPnksIHBhcnQub2Zmc2V0LCBwYXJ0Lmxlbmd0aCwgcGFydC53aWR0aCwgcGFydC5oZWln
aHQsIGJveC0+dGV4dFJlbmRlcmVyKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
fQotI2VuZGlmCi19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShTVkcpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9TVkdSb290SW5saW5lQm94LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUm9vdElubGluZUJveC5oCShyZXZpc2lvbiA2
ODg2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guaAkod29ya2luZyBj
b3B5KQpAQCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IE9saXZlciBI
dW50IDxvamgxNkBzdHVkZW50LmNhbnRlcmJ1cnkuYWMubno+Ci0gKiAgICAgICAgICAgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIgSW5jLgotICogICAgICAgICAgIChDKSAyMDA3IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBT
VkdSb290SW5saW5lQm94X2gKLSNkZWZpbmUgU1ZHUm9vdElubGluZUJveF9oCi0KLSNpZiBFTkFC
TEUoU1ZHKQotI2luY2x1ZGUgIlJvb3RJbmxpbmVCb3guaCIKLSNpbmNsdWRlICJTVkdDaGFyYWN0
ZXJEYXRhLmgiCi0jaW5jbHVkZSAiU1ZHQ2hhcmFjdGVyTGF5b3V0SW5mby5oIgotI2luY2x1ZGUg
IlNWR1JlbmRlclN1cHBvcnQuaCIKLSNpbmNsdWRlICJTVkdUZXh0Q2h1bmtMYXlvdXRJbmZvLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU1ZHSW5saW5lVGV4dEJveDsKLQotY2xh
c3MgU1ZHUm9vdElubGluZUJveCA6IHB1YmxpYyBSb290SW5saW5lQm94IHsKLXB1YmxpYzoKLSAg
ICBTVkdSb290SW5saW5lQm94KFJlbmRlckJsb2NrKiBibG9jaykKLSAgICAgICAgOiBSb290SW5s
aW5lQm94KGJsb2NrKQotICAgICAgICAsIG1fbG9naWNhbEhlaWdodCgwKQotICAgIHsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSb290SW5saW5lQm94KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQotCi0gICAgdmlydHVhbCBpbnQgdmlydHVhbExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7
IHJldHVybiBtX2xvZ2ljYWxIZWlnaHQ7IH0KLSAgICB2b2lkIHNldExvZ2ljYWxIZWlnaHQoaW50
IGhlaWdodCkgeyBtX2xvZ2ljYWxIZWlnaHQgPSBoZWlnaHQ7IH0KLQotICAgIHZpcnR1YWwgdm9p
ZCBwYWludChQYWludEluZm8mLCBpbnQgdHgsIGludCB0eSk7Ci0KLSAgICB2b2lkIGNvbXB1dGVQ
ZXJDaGFyYWN0ZXJMYXlvdXRJbmZvcm1hdGlvbigpOwotCi0gICAgdmlydHVhbCBGbG9hdFJlY3Qg
b2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQotICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyBy
ZXR1cm4gRmxvYXRSZWN0KCk7IH0KLQotICAgIC8vIFVzZWQgYnkgU1ZHUmVuZGVyVHJlZUFzVGV4
dAotICAgIGNvbnN0IFZlY3RvcjxTVkdUZXh0Q2h1bms+JiBzdmdUZXh0Q2h1bmtzKCkgY29uc3Qg
eyByZXR1cm4gbV9zdmdUZXh0Q2h1bmtzOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBwcm9wYWdh
dGVUZXh0Q2h1bmtQYXJ0SW5mb3JtYXRpb24oKTsKLSAgICB2b2lkIGJ1aWxkTGF5b3V0SW5mb3Jt
YXRpb24oSW5saW5lRmxvd0JveCogc3RhcnQsIFNWR0NoYXJhY3RlckxheW91dEluZm8mKTsKLQot
ICAgIHZvaWQgbGF5b3V0Um9vdEJveCgpOwotICAgIHZvaWQgbGF5b3V0Q2hpbGRCb3hlcyhJbmxp
bmVGbG93Qm94KiBzdGFydCk7Ci0KLXByaXZhdGU6Ci0gICAgaW50IG1fbG9naWNhbEhlaWdodDsK
LSAgICBWZWN0b3I8U1ZHQ2hhcj4gbV9zdmdDaGFyczsKLSAgICBWZWN0b3I8U1ZHVGV4dENodW5r
PiBtX3N2Z1RleHRDaHVua3M7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoU1ZHKQotCi0jZW5kaWYgLy8gU1ZHUm9vdElubGluZUJveF9oCkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9TVkdUZXh0UXVlcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1NWR1RleHRRdWVyeS5jcHAJKHJldmlzaW9uIDY4ODY3KQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0NjcgKzAsMCBA
QAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlNWR1RleHRRdWVyeS5oIgotCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJGbG9hdENvbnZl
cnNpb24uaCIKLSNpbmNsdWRlICJJbmxpbmVGbG93Qm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKLSNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKLSNpbmNsdWRlICJTVkdJbmxpbmVUZXh0
Qm94LmgiCi0jaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotLy8gQmFzZSBzdHJ1Y3R1cmUgZm9yIGNhbGxiYWNrIHVzZXIgZGF0YQotc3RydWN0IFNW
R1RleHRRdWVyeTo6RGF0YSB7Ci0gICAgRGF0YSgpCi0gICAgICAgIDogcHJvY2Vzc2VkQ2h1bmtD
aGFyYWN0ZXJzKDApCi0gICAgewotICAgIH0KLQotICAgIHVuc2lnbmVkIHByb2Nlc3NlZENodW5r
Q2hhcmFjdGVyczsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgSW5saW5lRmxvd0JveCogZmxvd0JveEZv
clJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCi17Ci0gICAgaWYgKCFyZW5kZXJlcikK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSkg
ewotICAgICAgICAvLyBJZiB3ZSdyZSBnaXZlbiBhIGJsb2NrIGVsZW1lbnQsIGl0IGhhcyB0byBi
ZSBhIFJlbmRlclNWR1RleHQuCi0gICAgICAgIEFTU0VSVChyZW5kZXJlci0+aXNTVkdUZXh0KCkp
OwotICAgICAgICBSZW5kZXJCbG9jayogcmVuZGVyQmxvY2sgPSB0b1JlbmRlckJsb2NrKHJlbmRl
cmVyKTsKLQotICAgICAgICAvLyBSZW5kZXJTVkdUZXh0IG9ubHkgZXZlciBjb250YWlucyBhIHNp
bmdsZSBsaW5lIGJveC4KLSAgICAgICAgSW5saW5lRmxvd0JveCogZmxvd0JveCA9IHJlbmRlckJs
b2NrLT5maXJzdExpbmVCb3goKTsKLSAgICAgICAgQVNTRVJUKGZsb3dCb3ggPT0gcmVuZGVyQmxv
Y2stPmxhc3RMaW5lQm94KCkpOwotICAgICAgICByZXR1cm4gZmxvd0JveDsKLSAgICB9Ci0KLSAg
ICBpZiAocmVuZGVyZXItPmlzUmVuZGVySW5saW5lKCkpIHsKLSAgICAgICAgLy8gV2UncmUgZ2l2
ZW4gYSBSZW5kZXJTVkdJbmxpbmUgb3Igb2JqZWN0cyB0aGF0IGRlcml2ZSBmcm9tIGl0IChSZW5k
ZXJTVkdUU3BhbiAvIFJlbmRlclNWR1RleHRQYXRoKQotICAgICAgICBSZW5kZXJJbmxpbmUqIHJl
bmRlcklubGluZSA9IHRvUmVuZGVySW5saW5lKHJlbmRlcmVyKTsKLQotICAgICAgICAvLyBSZW5k
ZXJTVkdJbmxpbmUgb25seSBldmVyIGNvbnRhaW5zIGEgc2luZ2xlIGxpbmUgYm94LgotICAgICAg
ICBJbmxpbmVGbG93Qm94KiBmbG93Qm94ID0gcmVuZGVySW5saW5lLT5maXJzdExpbmVCb3goKTsK
LSAgICAgICAgQVNTRVJUKGZsb3dCb3ggPT0gcmVuZGVySW5saW5lLT5sYXN0TGluZUJveCgpKTsK
LSAgICAgICAgcmV0dXJuIGZsb3dCb3g7Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgZmxvYXQgbWFwTGVuZ3RoVGhy
b3VnaENodW5rVHJhbnNmb3JtYXRpb24oY29uc3QgU1ZHSW5saW5lVGV4dEJveCogdGV4dEJveCwg
Ym9vbCBpc1ZlcnRpY2FsVGV4dCwgZmxvYXQgbGVuZ3RoKQotewotICAgIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgdHJhbnNmb3JtID0gdGV4dEJveC0+Y2h1bmtUcmFuc2Zvcm1hdGlvbigpOwotICAg
IGlmICh0cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQotICAgICAgICByZXR1cm4gbGVuZ3RoOwotICAg
ICAgICAKLSAgICByZXR1cm4gbmFycm93UHJlY2lzaW9uVG9GbG9hdChzdGF0aWNfY2FzdDxkb3Vi
bGU+KGxlbmd0aCkgKiAoaXNWZXJ0aWNhbFRleHQgPyB0cmFuc2Zvcm0uZCgpIDogdHJhbnNmb3Jt
LmEoKSkpOwotfQotCi1TVkdUZXh0UXVlcnk6OlNWR1RleHRRdWVyeShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQotewotICAgIGNvbGxlY3RUZXh0Qm94ZXNJbkZsb3dCb3goZmxvd0JveEZvclJlbmRl
cmVyKHJlbmRlcmVyKSk7Ci19Ci0KLXZvaWQgU1ZHVGV4dFF1ZXJ5Ojpjb2xsZWN0VGV4dEJveGVz
SW5GbG93Qm94KElubGluZUZsb3dCb3gqIGZsb3dCb3gpCi17Ci0gICAgaWYgKCFmbG93Qm94KQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBmbG93Qm94LT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkpIHsKLSAgICAg
ICAgaWYgKGNoaWxkLT5pc0lubGluZUZsb3dCb3goKSkgewotICAgICAgICAgICAgLy8gU2tpcCBn
ZW5lcmF0ZWQgY29udGVudC4KLSAgICAgICAgICAgIGlmICghY2hpbGQtPnJlbmRlcmVyKCktPm5v
ZGUoKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgY29sbGVjdFRl
eHRCb3hlc0luRmxvd0JveChzdGF0aWNfY2FzdDxJbmxpbmVGbG93Qm94Kj4oY2hpbGQpKTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNTRVJUKGNoaWxkLT5p
c1NWR0lubGluZVRleHRCb3goKSk7Ci0gICAgICAgIG1fdGV4dEJveGVzLmFwcGVuZChzdGF0aWNf
Y2FzdDxTVkdJbmxpbmVUZXh0Qm94Kj4oY2hpbGQpKTsKLSAgICB9Ci19Ci0KLWJvb2wgU1ZHVGV4
dFF1ZXJ5OjpleGVjdXRlUXVlcnkoRGF0YSogcXVlcnlEYXRhLCBQcm9jZXNzVGV4dENodW5rUGFy
dENhbGxiYWNrIGNodW5rUGFydENhbGxiYWNrKSBjb25zdAotewotICAgIEFTU0VSVCghbV90ZXh0
Qm94ZXMuaXNFbXB0eSgpKTsKLSAgICBib29sIGZpbmlzaGVkID0gZmFsc2U7Ci0KLSAgICAvLyBM
b29wIG92ZXIgYWxsIHRleHQgYm94ZXMKLSAgICBjb25zdCBWZWN0b3I8U1ZHSW5saW5lVGV4dEJv
eCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3RleHRCb3hlcy5lbmQoKTsKLSAgICBmb3IgKFZl
Y3RvcjxTVkdJbmxpbmVUZXh0Qm94Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90ZXh0Qm94ZXMu
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGNvbnN0IFNWR0lubGluZVRleHRC
b3gqIHRleHRCb3ggPSAqaXQ7Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxTVkdUZXh0Q2h1bmtQYXJ0
PiYgcGFydHMgPSB0ZXh0Qm94LT5zdmdUZXh0Q2h1bmtQYXJ0cygpOwotCi0gICAgICAgIGludCBw
cm9jZXNzZWRDaGFyYWN0ZXJzID0gMDsKLQotICAgICAgICAvLyBMb29wIG92ZXIgYWxsIHRleHQg
Y2h1bmsgcGFydHMgaW4gdGhpcyB0ZXh0IGJveCwgZmlyaW5nIGEgY2FsbGJhY2sgZm9yIGVhY2gg
Y2h1bmsgcGFydC4KLSAgICAgICAgY29uc3QgVmVjdG9yPFNWR1RleHRDaHVua1BhcnQ+Ojpjb25z
dF9pdGVyYXRvciBwYXJ0RW5kID0gcGFydHMuZW5kKCk7Ci0gICAgICAgIGZvciAoVmVjdG9yPFNW
R1RleHRDaHVua1BhcnQ+Ojpjb25zdF9pdGVyYXRvciBwYXJ0SXQgPSBwYXJ0cy5iZWdpbigpOyBw
YXJ0SXQgIT0gcGFydEVuZDsgKytwYXJ0SXQpIHsKLSAgICAgICAgICAgIGlmICgodGhpcy0+KmNo
dW5rUGFydENhbGxiYWNrKShxdWVyeURhdGEsIHRleHRCb3gsICpwYXJ0SXQpKSB7Ci0gICAgICAg
ICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBwcm9jZXNzZWRDaGFyYWN0ZXJzICs9IHBhcnRJdC0+bGVu
Z3RoOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGZpbmlzaGVkKQotICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgcXVlcnlEYXRhLT5wcm9jZXNzZWRDaHVua0NoYXJhY3RlcnMgKz0gcHJv
Y2Vzc2VkQ2hhcmFjdGVyczsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmluaXNoZWQ7Ci19Ci0KLWJv
b2wgU1ZHVGV4dFF1ZXJ5OjptYXBTdGFydEFuZExlbmd0aEludG9DaHVua1BhcnRDb29yZGluYXRl
cyhEYXRhKiBxdWVyeURhdGEsIGNvbnN0IFNWR0lubGluZVRleHRCb3gqIHRleHRCb3gsIGNvbnN0
IFNWR1RleHRDaHVua1BhcnQmIHBhcnQsIGludCYgc3RhcnRQb3NpdGlvbiwgaW50JiBlbmRQb3Np
dGlvbikgY29uc3QKLXsKLSAgICAvLyBSZXVzZSB0aGUgc2FtZSBsb2dpYyB1c2VkIGZvciB0ZXh0
IHNlbGVjdGlvbiAmIHBhaW50aW5nLCB0byBtYXAgb3VyIHF1ZXJ5IHN0YXJ0L2xlbmd0aCBpbnRv
IHN0YXJ0L2VuZFBvc2l0aW9ucyBvZiB0aGUgY3VycmVudCB0ZXh0IGNodW5rIHBhcnQuCi0gICAg
c3RhcnRQb3NpdGlvbiAtPSBxdWVyeURhdGEtPnByb2Nlc3NlZENodW5rQ2hhcmFjdGVyczsKLSAg
ICBlbmRQb3NpdGlvbiAtPSBxdWVyeURhdGEtPnByb2Nlc3NlZENodW5rQ2hhcmFjdGVyczsKLSAg
ICB0ZXh0Qm94LT5tYXBTdGFydEVuZFBvc2l0aW9uc0ludG9DaHVua1BhcnRDb29yZGluYXRlcyhz
dGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbiwgcGFydCk7Ci0KLSAgICAvLyBJZiBzdGFydFBvc2l0
aW9uIDwgZW5kUG9zaXRpb24sIHRoZW4gdGhlIHBvc2l0aW9uIHdlJ3JlIHN1cHBvc2VkIHRvIG1l
YXN1cmUgbGllcyBpbiB0aGlzIGNodW5rIHBhcnQuCi0gICAgcmV0dXJuIHN0YXJ0UG9zaXRpb24g
PCBlbmRQb3NpdGlvbjsKLX0KLQotZmxvYXQgU1ZHVGV4dFF1ZXJ5OjptZWFzdXJlQ2hhcmFjdGVy
UmFuZ2UoY29uc3QgU1ZHSW5saW5lVGV4dEJveCogdGV4dEJveCwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBib29sIGlzVmVydGljYWxUZXh0LCBpbnQgc3RhcnRQb3NpdGlvbiwgaW50IGxlbmd0aCkgY29u
c3QKLXsKLSAgICAvLyBGSVhNRTogVmVydGljYWwgd3JpdGluZyBtb2RlIG5lZWRzIHRvIGJlIGhh
bmRsZWQgbW9yZSBhY2N1cmF0ZS4KLSAgICBpZiAoaXNWZXJ0aWNhbFRleHQpCi0gICAgICAgIHJl
dHVybiBsZW5ndGggKiBzdHlsZS0+Zm9udCgpLmhlaWdodCgpOwotCi0gICAgY29uc3QgVUNoYXIq
IHN0YXJ0Q2hhcmFjdGVyID0gdGV4dEJveC0+dGV4dFJlbmRlcmVyKCktPmNoYXJhY3RlcnMoKSAr
IHRleHRCb3gtPnN0YXJ0KCkgKyBzdGFydFBvc2l0aW9uOwotICAgIHJldHVybiBzdHlsZS0+Zm9u
dCgpLmZsb2F0V2lkdGgoc3ZnVGV4dFJ1bkZvcklubGluZVRleHRCb3goc3RhcnRDaGFyYWN0ZXIs
IGxlbmd0aCwgc3R5bGUsIHRleHRCb3gpKTsKLX0KLQotLy8gbnVtYmVyT2ZDaGFyYWN0ZXJzKCkg
aW1wbGVtZW50YXRpb24KLXN0cnVjdCBOdW1iZXJPZkNoYXJhY3RlcnNEYXRhIDogU1ZHVGV4dFF1
ZXJ5OjpEYXRhIHsKLSAgICBOdW1iZXJPZkNoYXJhY3RlcnNEYXRhKCkKLSAgICAgICAgOiBjaGFy
YWN0ZXJzKDApCi0gICAgewotICAgIH0KLQotICAgIHVuc2lnbmVkIGNoYXJhY3RlcnM7Ci19Owot
Ci1ib29sIFNWR1RleHRRdWVyeTo6bnVtYmVyT2ZDaGFyYWN0ZXJzQ2FsbGJhY2soRGF0YSogcXVl
cnlEYXRhLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiwgY29uc3QgU1ZHVGV4dENodW5rUGFydCYg
cGFydCkgY29uc3QKLXsKLSAgICBOdW1iZXJPZkNoYXJhY3RlcnNEYXRhKiBkYXRhID0gc3RhdGlj
X2Nhc3Q8TnVtYmVyT2ZDaGFyYWN0ZXJzRGF0YSo+KHF1ZXJ5RGF0YSk7Ci0gICAgZGF0YS0+Y2hh
cmFjdGVycyArPSBwYXJ0Lmxlbmd0aDsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXVuc2lnbmVk
IFNWR1RleHRRdWVyeTo6bnVtYmVyT2ZDaGFyYWN0ZXJzKCkgY29uc3QKLXsKLSAgICBpZiAobV90
ZXh0Qm94ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIE51bWJlck9mQ2hh
cmFjdGVyc0RhdGEgZGF0YTsKLSAgICBleGVjdXRlUXVlcnkoJmRhdGEsICZTVkdUZXh0UXVlcnk6
Om51bWJlck9mQ2hhcmFjdGVyc0NhbGxiYWNrKTsKLSAgICByZXR1cm4gZGF0YS5jaGFyYWN0ZXJz
OwotfQotCi0vLyB0ZXh0TGVuZ3RoKCkgaW1wbGVtZW50YXRpb24KLXN0cnVjdCBUZXh0TGVuZ3Ro
RGF0YSA6IFNWR1RleHRRdWVyeTo6RGF0YSB7Ci0gICAgVGV4dExlbmd0aERhdGEoKQotICAgICAg
ICA6IHRleHRMZW5ndGgoMC4wZikKLSAgICB7Ci0gICAgfQotCi0gICAgZmxvYXQgdGV4dExlbmd0
aDsKLX07Ci0KLWJvb2wgU1ZHVGV4dFF1ZXJ5Ojp0ZXh0TGVuZ3RoQ2FsbGJhY2soRGF0YSogcXVl
cnlEYXRhLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBjb25zdCBTVkdUZXh0Q2h1
bmtQYXJ0JiBwYXJ0KSBjb25zdAotewotICAgIFRleHRMZW5ndGhEYXRhKiBkYXRhID0gc3RhdGlj
X2Nhc3Q8VGV4dExlbmd0aERhdGEqPihxdWVyeURhdGEpOwotCi0gICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gdGV4dEJveC0+dGV4dFJlbmRlcmVyKCktPnN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0eWxl
KTsKLQotICAgIGJvb2wgaXNWZXJ0aWNhbFRleHQgPSBpc1ZlcnRpY2FsV3JpdGluZ01vZGUoc3R5
bGUtPnN2Z1N0eWxlKCkpOwotICAgIGZsb2F0IHBhcnRMZW5ndGggPSBpc1ZlcnRpY2FsVGV4dCA/
IHBhcnQuaGVpZ2h0IDogcGFydC53aWR0aDsKLQotICAgIGRhdGEtPnRleHRMZW5ndGggKz0gbWFw
TGVuZ3RoVGhyb3VnaENodW5rVHJhbnNmb3JtYXRpb24odGV4dEJveCwgaXNWZXJ0aWNhbFRleHQs
IHBhcnRMZW5ndGgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotZmxvYXQgU1ZHVGV4dFF1ZXJ5
Ojp0ZXh0TGVuZ3RoKCkgY29uc3QKLXsKLSAgICBpZiAobV90ZXh0Qm94ZXMuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gMC4wZjsKLQotICAgIFRleHRMZW5ndGhEYXRhIGRhdGE7Ci0gICAgZXhl
Y3V0ZVF1ZXJ5KCZkYXRhLCAmU1ZHVGV4dFF1ZXJ5Ojp0ZXh0TGVuZ3RoQ2FsbGJhY2spOwotICAg
IHJldHVybiBkYXRhLnRleHRMZW5ndGg7Ci19Ci0KLS8vIHN1YlN0cmluZ0xlbmd0aCgpIGltcGxl
bWVudGF0aW9uCi1zdHJ1Y3QgU3ViU3RyaW5nTGVuZ3RoRGF0YSA6IFNWR1RleHRRdWVyeTo6RGF0
YSB7Ci0gICAgU3ViU3RyaW5nTGVuZ3RoRGF0YSh1bnNpZ25lZCBxdWVyeVN0YXJ0UG9zaXRpb24s
IHVuc2lnbmVkIHF1ZXJ5TGVuZ3RoKQotICAgICAgICA6IHN0YXJ0UG9zaXRpb24ocXVlcnlTdGFy
dFBvc2l0aW9uKQotICAgICAgICAsIGxlbmd0aChxdWVyeUxlbmd0aCkKLSAgICAgICAgLCBzdWJT
dHJpbmdMZW5ndGgoMC4wZikKLSAgICB7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgc3RhcnRQb3Np
dGlvbjsKLSAgICB1bnNpZ25lZCBsZW5ndGg7Ci0KLSAgICBmbG9hdCBzdWJTdHJpbmdMZW5ndGg7
Ci19OwotCi1ib29sIFNWR1RleHRRdWVyeTo6c3ViU3RyaW5nTGVuZ3RoQ2FsbGJhY2soRGF0YSog
cXVlcnlEYXRhLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBjb25zdCBTVkdUZXh0
Q2h1bmtQYXJ0JiBwYXJ0KSBjb25zdAotewotICAgIFN1YlN0cmluZ0xlbmd0aERhdGEqIGRhdGEg
PSBzdGF0aWNfY2FzdDxTdWJTdHJpbmdMZW5ndGhEYXRhKj4ocXVlcnlEYXRhKTsKLQotICAgIGlu
dCBzdGFydFBvc2l0aW9uID0gZGF0YS0+c3RhcnRQb3NpdGlvbjsKLSAgICBpbnQgZW5kUG9zaXRp
b24gPSBzdGFydFBvc2l0aW9uICsgZGF0YS0+bGVuZ3RoOwotICAgIGlmICghbWFwU3RhcnRBbmRM
ZW5ndGhJbnRvQ2h1bmtQYXJ0Q29vcmRpbmF0ZXMocXVlcnlEYXRhLCB0ZXh0Qm94LCBwYXJ0LCBz
dGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IFJlbmRlclN0eWxlKiBzdHlsZSA9IHRleHRCb3gtPnRleHRSZW5kZXJlcigpLT5zdHlsZSgpOwot
ICAgIEFTU0VSVChzdHlsZSk7Ci0KLSAgICBib29sIGlzVmVydGljYWxUZXh0ID0gaXNWZXJ0aWNh
bFdyaXRpbmdNb2RlKHN0eWxlLT5zdmdTdHlsZSgpKTsKLSAgICBmbG9hdCBwYXJ0TGVuZ3RoID0g
bWVhc3VyZUNoYXJhY3RlclJhbmdlKHRleHRCb3gsIHN0eWxlLCBpc1ZlcnRpY2FsV3JpdGluZ01v
ZGUoc3R5bGUtPnN2Z1N0eWxlKCkpLCBwYXJ0Lm9mZnNldCArIHN0YXJ0UG9zaXRpb24sIGVuZFBv
c2l0aW9uIC0gc3RhcnRQb3NpdGlvbik7Ci0KLSAgICBkYXRhLT5zdWJTdHJpbmdMZW5ndGggKz0g
bWFwTGVuZ3RoVGhyb3VnaENodW5rVHJhbnNmb3JtYXRpb24odGV4dEJveCwgaXNWZXJ0aWNhbFRl
eHQsIHBhcnRMZW5ndGgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotZmxvYXQgU1ZHVGV4dFF1
ZXJ5OjpzdWJTdHJpbmdMZW5ndGgodW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgbGVu
Z3RoKSBjb25zdAotewotICAgIGlmIChtX3RleHRCb3hlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiAwLjBmOwotCi0gICAgU3ViU3RyaW5nTGVuZ3RoRGF0YSBkYXRhKHN0YXJ0UG9zaXRpb24s
IGxlbmd0aCk7Ci0gICAgZXhlY3V0ZVF1ZXJ5KCZkYXRhLCAmU1ZHVGV4dFF1ZXJ5OjpzdWJTdHJp
bmdMZW5ndGhDYWxsYmFjayk7Ci0gICAgcmV0dXJuIGRhdGEuc3ViU3RyaW5nTGVuZ3RoOwotfQot
Ci0vLyBzdGFydFBvc2l0aW9uT2ZDaGFyYWN0ZXIoKSBpbXBsZW1lbnRhdGlvbgotc3RydWN0IFN0
YXJ0UG9zaXRpb25PZkNoYXJhY3RlckRhdGEgOiBTVkdUZXh0UXVlcnk6OkRhdGEgewotICAgIFN0
YXJ0UG9zaXRpb25PZkNoYXJhY3RlckRhdGEodW5zaWduZWQgcXVlcnlQb3NpdGlvbikKLSAgICAg
ICAgOiBwb3NpdGlvbihxdWVyeVBvc2l0aW9uKQotICAgIHsKLSAgICB9Ci0KLSAgICB1bnNpZ25l
ZCBwb3NpdGlvbjsKLSAgICBGbG9hdFBvaW50IHN0YXJ0UG9zaXRpb247Ci19OwotCi1ib29sIFNW
R1RleHRRdWVyeTo6c3RhcnRQb3NpdGlvbk9mQ2hhcmFjdGVyQ2FsbGJhY2soRGF0YSogcXVlcnlE
YXRhLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBjb25zdCBTVkdUZXh0Q2h1bmtQ
YXJ0JiBwYXJ0KSBjb25zdAotewotICAgIFN0YXJ0UG9zaXRpb25PZkNoYXJhY3RlckRhdGEqIGRh
dGEgPSBzdGF0aWNfY2FzdDxTdGFydFBvc2l0aW9uT2ZDaGFyYWN0ZXJEYXRhKj4ocXVlcnlEYXRh
KTsKLQotICAgIGludCBzdGFydFBvc2l0aW9uID0gZGF0YS0+cG9zaXRpb247Ci0gICAgaW50IGVu
ZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiArIDE7Ci0gICAgaWYgKCFtYXBTdGFydEFuZExlbmd0
aEludG9DaHVua1BhcnRDb29yZGluYXRlcyhxdWVyeURhdGEsIHRleHRCb3gsIHBhcnQsIHN0YXJ0
UG9zaXRpb24sIGVuZFBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY29u
c3QgU1ZHQ2hhciYgY2hhcmFjdGVyID0gKihwYXJ0LmZpcnN0Q2hhcmFjdGVyICsgc3RhcnRQb3Np
dGlvbik7Ci0gICAgZGF0YS0+c3RhcnRQb3NpdGlvbiA9IHRleHRCb3gtPmNodW5rVHJhbnNmb3Jt
YXRpb24oKS5tYXBQb2ludChGbG9hdFBvaW50KGNoYXJhY3Rlci54LCBjaGFyYWN0ZXIueSkpOwot
ICAgIHJldHVybiB0cnVlOwotfQotCi1GbG9hdFBvaW50IFNWR1RleHRRdWVyeTo6c3RhcnRQb3Np
dGlvbk9mQ2hhcmFjdGVyKHVuc2lnbmVkIHBvc2l0aW9uKSBjb25zdAotewotICAgIGlmIChtX3Rl
eHRCb3hlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBGbG9hdFBvaW50KCk7Ci0KLSAgICBT
dGFydFBvc2l0aW9uT2ZDaGFyYWN0ZXJEYXRhIGRhdGEocG9zaXRpb24pOwotICAgIGV4ZWN1dGVR
dWVyeSgmZGF0YSwgJlNWR1RleHRRdWVyeTo6c3RhcnRQb3NpdGlvbk9mQ2hhcmFjdGVyQ2FsbGJh
Y2spOwotICAgIHJldHVybiBkYXRhLnN0YXJ0UG9zaXRpb247Ci19Ci0KLS8vIGVuZFBvc2l0aW9u
T2ZDaGFyYWN0ZXIoKSBpbXBsZW1lbnRhdGlvbgotc3RydWN0IEVuZFBvc2l0aW9uT2ZDaGFyYWN0
ZXJEYXRhIDogU1ZHVGV4dFF1ZXJ5OjpEYXRhIHsKLSAgICBFbmRQb3NpdGlvbk9mQ2hhcmFjdGVy
RGF0YSh1bnNpZ25lZCBxdWVyeVBvc2l0aW9uKQotICAgICAgICA6IHBvc2l0aW9uKHF1ZXJ5UG9z
aXRpb24pCi0gICAgewotICAgIH0KLQotICAgIHVuc2lnbmVkIHBvc2l0aW9uOwotICAgIEZsb2F0
UG9pbnQgZW5kUG9zaXRpb247Ci19OwotCi1ib29sIFNWR1RleHRRdWVyeTo6ZW5kUG9zaXRpb25P
ZkNoYXJhY3RlckNhbGxiYWNrKERhdGEqIHF1ZXJ5RGF0YSwgY29uc3QgU1ZHSW5saW5lVGV4dEJv
eCogdGV4dEJveCwgY29uc3QgU1ZHVGV4dENodW5rUGFydCYgcGFydCkgY29uc3QKLXsKLSAgICBF
bmRQb3NpdGlvbk9mQ2hhcmFjdGVyRGF0YSogZGF0YSA9IHN0YXRpY19jYXN0PEVuZFBvc2l0aW9u
T2ZDaGFyYWN0ZXJEYXRhKj4ocXVlcnlEYXRhKTsKLQotICAgIGludCBzdGFydFBvc2l0aW9uID0g
ZGF0YS0+cG9zaXRpb247Ci0gICAgaW50IGVuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiArIDE7
Ci0gICAgaWYgKCFtYXBTdGFydEFuZExlbmd0aEludG9DaHVua1BhcnRDb29yZGluYXRlcyhxdWVy
eURhdGEsIHRleHRCb3gsIHBhcnQsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY29uc3QgU1ZHQ2hhciYgY2hhcmFjdGVyID0gKihwYXJ0
LmZpcnN0Q2hhcmFjdGVyICsgc3RhcnRQb3NpdGlvbik7Ci0gICAgZGF0YS0+ZW5kUG9zaXRpb24g
PSBGbG9hdFBvaW50KGNoYXJhY3Rlci54LCBjaGFyYWN0ZXIueSk7Ci0KLSAgICBSZW5kZXJTdHls
ZSogc3R5bGUgPSB0ZXh0Qm94LT50ZXh0UmVuZGVyZXIoKS0+c3R5bGUoKTsKLSAgICBBU1NFUlQo
c3R5bGUpOwotCi0gICAgYm9vbCBpc1ZlcnRpY2FsVGV4dCA9IGlzVmVydGljYWxXcml0aW5nTW9k
ZShzdHlsZS0+c3ZnU3R5bGUoKSk7Ci0gICAgZmxvYXQgZ2x5cGhBZHZhbmNlID0gbWVhc3VyZUNo
YXJhY3RlclJhbmdlKHRleHRCb3gsIHN0eWxlLCBpc1ZlcnRpY2FsVGV4dCwgcGFydC5vZmZzZXQg
KyBzdGFydFBvc2l0aW9uLCAxKTsKLQotICAgIGlmIChpc1ZlcnRpY2FsVGV4dCkKLSAgICAgICAg
ZGF0YS0+ZW5kUG9zaXRpb24ubW92ZSgwLjBmLCBnbHlwaEFkdmFuY2UpOwotICAgIGVsc2UKLSAg
ICAgICAgZGF0YS0+ZW5kUG9zaXRpb24ubW92ZShnbHlwaEFkdmFuY2UsIDAuMGYpOwotCi0gICAg
ZGF0YS0+ZW5kUG9zaXRpb24gPSB0ZXh0Qm94LT5jaHVua1RyYW5zZm9ybWF0aW9uKCkubWFwUG9p
bnQoZGF0YS0+ZW5kUG9zaXRpb24pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1GbG9hdFBvaW50
IFNWR1RleHRRdWVyeTo6ZW5kUG9zaXRpb25PZkNoYXJhY3Rlcih1bnNpZ25lZCBwb3NpdGlvbikg
Y29uc3QKLXsKLSAgICBpZiAobV90ZXh0Qm94ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
RmxvYXRQb2ludCgpOwotCi0gICAgRW5kUG9zaXRpb25PZkNoYXJhY3RlckRhdGEgZGF0YShwb3Np
dGlvbik7Ci0gICAgZXhlY3V0ZVF1ZXJ5KCZkYXRhLCAmU1ZHVGV4dFF1ZXJ5OjplbmRQb3NpdGlv
bk9mQ2hhcmFjdGVyQ2FsbGJhY2spOwotICAgIHJldHVybiBkYXRhLmVuZFBvc2l0aW9uOwotfQot
Ci0vLyByb3RhdGlvbk9mQ2hhcmFjdGVyKCkgaW1wbGVtZW50YXRpb24KLXN0cnVjdCBSb3RhdGlv
bk9mQ2hhcmFjdGVyRGF0YSA6IFNWR1RleHRRdWVyeTo6RGF0YSB7Ci0gICAgUm90YXRpb25PZkNo
YXJhY3RlckRhdGEodW5zaWduZWQgcXVlcnlQb3NpdGlvbikKLSAgICAgICAgOiBwb3NpdGlvbihx
dWVyeVBvc2l0aW9uKQotICAgICAgICAsIHJvdGF0aW9uKDAuMGYpCi0gICAgewotICAgIH0KLQot
ICAgIHVuc2lnbmVkIHBvc2l0aW9uOwotICAgIGZsb2F0IHJvdGF0aW9uOwotfTsKLQotYm9vbCBT
VkdUZXh0UXVlcnk6OnJvdGF0aW9uT2ZDaGFyYWN0ZXJDYWxsYmFjayhEYXRhKiBxdWVyeURhdGEs
IGNvbnN0IFNWR0lubGluZVRleHRCb3gqIHRleHRCb3gsIGNvbnN0IFNWR1RleHRDaHVua1BhcnQm
IHBhcnQpIGNvbnN0Ci17Ci0gICAgUm90YXRpb25PZkNoYXJhY3RlckRhdGEqIGRhdGEgPSBzdGF0
aWNfY2FzdDxSb3RhdGlvbk9mQ2hhcmFjdGVyRGF0YSo+KHF1ZXJ5RGF0YSk7Ci0KLSAgICBpbnQg
c3RhcnRQb3NpdGlvbiA9IGRhdGEtPnBvc2l0aW9uOwotICAgIGludCBlbmRQb3NpdGlvbiA9IHN0
YXJ0UG9zaXRpb24gKyAxOwotICAgIGlmICghbWFwU3RhcnRBbmRMZW5ndGhJbnRvQ2h1bmtQYXJ0
Q29vcmRpbmF0ZXMocXVlcnlEYXRhLCB0ZXh0Qm94LCBwYXJ0LCBzdGFydFBvc2l0aW9uLCBlbmRQ
b3NpdGlvbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNvbnN0IFNWR0NoYXImIGNo
YXJhY3RlciA9ICoocGFydC5maXJzdENoYXJhY3RlciArIHN0YXJ0UG9zaXRpb24pOwotICAgIGRh
dGEtPnJvdGF0aW9uID0gY2hhcmFjdGVyLmFuZ2xlOwotICAgIHJldHVybiB0cnVlOwotfQotCi1m
bG9hdCBTVkdUZXh0UXVlcnk6OnJvdGF0aW9uT2ZDaGFyYWN0ZXIodW5zaWduZWQgcG9zaXRpb24p
IGNvbnN0Ci17Ci0gICAgaWYgKG1fdGV4dEJveGVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IDAuMGY7Ci0KLSAgICBSb3RhdGlvbk9mQ2hhcmFjdGVyRGF0YSBkYXRhKHBvc2l0aW9uKTsKLSAg
ICBleGVjdXRlUXVlcnkoJmRhdGEsICZTVkdUZXh0UXVlcnk6OnJvdGF0aW9uT2ZDaGFyYWN0ZXJD
YWxsYmFjayk7Ci0gICAgcmV0dXJuIGRhdGEucm90YXRpb247Ci19Ci0KLS8vIGV4dGVudE9mQ2hh
cmFjdGVyKCkgaW1wbGVtZW50YXRpb24KLXN0cnVjdCBFeHRlbnRPZkNoYXJhY3RlckRhdGEgOiBT
VkdUZXh0UXVlcnk6OkRhdGEgewotICAgIEV4dGVudE9mQ2hhcmFjdGVyRGF0YSh1bnNpZ25lZCBx
dWVyeVBvc2l0aW9uKQotICAgICAgICA6IHBvc2l0aW9uKHF1ZXJ5UG9zaXRpb24pCi0gICAgewot
ICAgIH0KLQotICAgIHVuc2lnbmVkIHBvc2l0aW9uOwotICAgIEZsb2F0UmVjdCBleHRlbnQ7Ci19
OwotCi1ib29sIFNWR1RleHRRdWVyeTo6ZXh0ZW50T2ZDaGFyYWN0ZXJDYWxsYmFjayhEYXRhKiBx
dWVyeURhdGEsIGNvbnN0IFNWR0lubGluZVRleHRCb3gqIHRleHRCb3gsIGNvbnN0IFNWR1RleHRD
aHVua1BhcnQmIHBhcnQpIGNvbnN0Ci17Ci0gICAgRXh0ZW50T2ZDaGFyYWN0ZXJEYXRhKiBkYXRh
ID0gc3RhdGljX2Nhc3Q8RXh0ZW50T2ZDaGFyYWN0ZXJEYXRhKj4ocXVlcnlEYXRhKTsKLQotICAg
IGludCBzdGFydFBvc2l0aW9uID0gZGF0YS0+cG9zaXRpb247Ci0gICAgaW50IGVuZFBvc2l0aW9u
ID0gc3RhcnRQb3NpdGlvbiArIDE7Ci0gICAgaWYgKCFtYXBTdGFydEFuZExlbmd0aEludG9DaHVu
a1BhcnRDb29yZGluYXRlcyhxdWVyeURhdGEsIHRleHRCb3gsIHBhcnQsIHN0YXJ0UG9zaXRpb24s
IGVuZFBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotIAotICAgIFJlbmRlclN0eWxl
KiBzdHlsZSA9IHRleHRCb3gtPnRleHRSZW5kZXJlcigpLT5zdHlsZSgpOwotICAgIEFTU0VSVChz
dHlsZSk7Ci0KLSAgICBjb25zdCBTVkdDaGFyJiBjaGFyYWN0ZXIgPSAqKHBhcnQuZmlyc3RDaGFy
YWN0ZXIgKyBzdGFydFBvc2l0aW9uKTsKLSAgICBkYXRhLT5leHRlbnQgPSB0ZXh0Qm94LT5jYWxj
dWxhdGVHbHlwaEJvdW5kYXJpZXMoc3R5bGUsIHBhcnQub2Zmc2V0ICsgc3RhcnRQb3NpdGlvbiwg
Y2hhcmFjdGVyKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotRmxvYXRSZWN0IFNWR1RleHRRdWVy
eTo6ZXh0ZW50T2ZDaGFyYWN0ZXIodW5zaWduZWQgcG9zaXRpb24pIGNvbnN0Ci17Ci0gICAgaWYg
KG1fdGV4dEJveGVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwotCi0g
ICAgRXh0ZW50T2ZDaGFyYWN0ZXJEYXRhIGRhdGEocG9zaXRpb24pOwotICAgIGV4ZWN1dGVRdWVy
eSgmZGF0YSwgJlNWR1RleHRRdWVyeTo6ZXh0ZW50T2ZDaGFyYWN0ZXJDYWxsYmFjayk7Ci0gICAg
cmV0dXJuIGRhdGEuZXh0ZW50OwotfQotCi0vLyBjaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKCkg
aW1wbGVtZW50YXRpb24KLXN0cnVjdCBDaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uRGF0YSA6IFNW
R1RleHRRdWVyeTo6RGF0YSB7Ci0gICAgQ2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbkRhdGEoY29u
c3QgRmxvYXRQb2ludCYgcXVlcnlQb3NpdGlvbikKLSAgICAgICAgOiBjaGFyYWN0ZXJOdW1iZXIo
MCkKLSAgICAgICAgLCBwb3NpdGlvbihxdWVyeVBvc2l0aW9uKQotICAgIHsKLSAgICB9Ci0KLSAg
ICB1bnNpZ25lZCBjaGFyYWN0ZXJOdW1iZXI7Ci0gICAgRmxvYXRQb2ludCBwb3NpdGlvbjsKLX07
Ci0KLWJvb2wgU1ZHVGV4dFF1ZXJ5OjpjaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uQ2FsbGJhY2so
RGF0YSogcXVlcnlEYXRhLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiB0ZXh0Qm94LCBjb25zdCBT
VkdUZXh0Q2h1bmtQYXJ0JiBwYXJ0KSBjb25zdAotewotICAgIENoYXJhY3Rlck51bWJlckF0UG9z
aXRpb25EYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbkRh
dGEqPihxdWVyeURhdGEpOwotCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gdGV4dEJveC0+dGV4
dFJlbmRlcmVyKCktPnN0eWxlKCk7Ci0gICAgQVNTRVJUKHN0eWxlKTsKLQotICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgcGFydC5sZW5ndGg7ICsraSkgewotICAgICAgICBGbG9hdFJlY3QgZXh0ZW50
KHRleHRCb3gtPmNhbGN1bGF0ZUdseXBoQm91bmRhcmllcyhzdHlsZSwgcGFydC5vZmZzZXQgKyBp
LCAqKHBhcnQuZmlyc3RDaGFyYWN0ZXIgKyBpKSkpOwotICAgICAgICBpZiAoZXh0ZW50LmNvbnRh
aW5zKGRhdGEtPnBvc2l0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAg
ICsrZGF0YS0+Y2hhcmFjdGVyTnVtYmVyOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotaW50IFNWR1RleHRRdWVyeTo6Y2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbikgY29uc3QKLXsKLSAgICBpZiAobV90ZXh0Qm94ZXMuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBDaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uRGF0
YSBkYXRhKHBvc2l0aW9uKTsKLSAgICBpZiAoIWV4ZWN1dGVRdWVyeSgmZGF0YSwgJlNWR1RleHRR
dWVyeTo6Y2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbkNhbGxiYWNrKSkKLSAgICAgICAgcmV0dXJu
IC0xOwotCi0gICAgcmV0dXJuIGRhdGEuY2hhcmFjdGVyTnVtYmVyOwotfQotCi19Ci0KLSNlbmRp
ZgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5LmgJKHJldmlzaW9uIDY4ODY3KQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNzYgKzAs
MCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIw
MTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2lmbmRlZiBTVkdUZXh0UXVlcnlfaAotI2Rl
ZmluZSBTVkdUZXh0UXVlcnlfaAotCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgSW5saW5lRmxvd0JveDsKLWNsYXNzIFJlbmRlck9iamVjdDsKLWNsYXNzIFJlbmRlclN0
eWxlOwotY2xhc3MgU1ZHSW5saW5lVGV4dEJveDsKLXN0cnVjdCBTVkdUZXh0Q2h1bmtQYXJ0Owot
Ci1jbGFzcyBTVkdUZXh0UXVlcnkgewotcHVibGljOgotICAgIFNWR1RleHRRdWVyeShSZW5kZXJP
YmplY3QqKTsKLQotICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhcmFjdGVycygpIGNvbnN0OwotICAg
IGZsb2F0IHRleHRMZW5ndGgoKSBjb25zdDsKLSAgICBmbG9hdCBzdWJTdHJpbmdMZW5ndGgodW5z
aWduZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKLSAgICBGbG9hdFBv
aW50IHN0YXJ0UG9zaXRpb25PZkNoYXJhY3Rlcih1bnNpZ25lZCBwb3NpdGlvbikgY29uc3Q7Ci0g
ICAgRmxvYXRQb2ludCBlbmRQb3NpdGlvbk9mQ2hhcmFjdGVyKHVuc2lnbmVkIHBvc2l0aW9uKSBj
b25zdDsKLSAgICBmbG9hdCByb3RhdGlvbk9mQ2hhcmFjdGVyKHVuc2lnbmVkIHBvc2l0aW9uKSBj
b25zdDsKLSAgICBGbG9hdFJlY3QgZXh0ZW50T2ZDaGFyYWN0ZXIodW5zaWduZWQgcG9zaXRpb24p
IGNvbnN0OwotICAgIGludCBjaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9p
bnQmKSBjb25zdDsKLQotICAgIC8vIFB1YmxpYyBoZWxwZXIgc3RydWN0LiBQcml2YXRlIGNsYXNz
ZXMgaW4gU1ZHVGV4dFF1ZXJ5IGluaGVyaXQgZnJvbSBpdC4KLSAgICBzdHJ1Y3QgRGF0YTsKLQot
cHJpdmF0ZToKLSAgICB0eXBlZGVmIGJvb2wgKFNWR1RleHRRdWVyeTo6KlByb2Nlc3NUZXh0Q2h1
bmtQYXJ0Q2FsbGJhY2spKERhdGEqLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiwgY29uc3QgU1ZH
VGV4dENodW5rUGFydCYpIGNvbnN0OwotICAgIGJvb2wgZXhlY3V0ZVF1ZXJ5KERhdGEqLCBQcm9j
ZXNzVGV4dENodW5rUGFydENhbGxiYWNrKSBjb25zdDsKLQotICAgIHZvaWQgY29sbGVjdFRleHRC
b3hlc0luRmxvd0JveChJbmxpbmVGbG93Qm94Kik7Ci0gICAgZmxvYXQgbWVhc3VyZUNoYXJhY3Rl
clJhbmdlKGNvbnN0IFNWR0lubGluZVRleHRCb3gqLCBSZW5kZXJTdHlsZSosIGJvb2wgaXNWZXJ0
aWNhbFRleHQsIGludCBzdGFydFBvc2l0aW9uLCBpbnQgbGVuZ3RoKSBjb25zdDsKLSAgICBib29s
IG1hcFN0YXJ0QW5kTGVuZ3RoSW50b0NodW5rUGFydENvb3JkaW5hdGVzKERhdGEqLCBjb25zdCBT
VkdJbmxpbmVUZXh0Qm94KiwgY29uc3QgU1ZHVGV4dENodW5rUGFydCYsIGludCYgc3RhcnRQb3Np
dGlvbiwgaW50JiBlbmRQb3NpdGlvbikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBudW1i
ZXJPZkNoYXJhY3RlcnNDYWxsYmFjayhEYXRhKiwgY29uc3QgU1ZHSW5saW5lVGV4dEJveCosIGNv
bnN0IFNWR1RleHRDaHVua1BhcnQmKSBjb25zdDsKLSAgICBib29sIHRleHRMZW5ndGhDYWxsYmFj
ayhEYXRhKiwgY29uc3QgU1ZHSW5saW5lVGV4dEJveCosIGNvbnN0IFNWR1RleHRDaHVua1BhcnQm
KSBjb25zdDsKLSAgICBib29sIHN1YlN0cmluZ0xlbmd0aENhbGxiYWNrKERhdGEqLCBjb25zdCBT
VkdJbmxpbmVUZXh0Qm94KiwgY29uc3QgU1ZHVGV4dENodW5rUGFydCYpIGNvbnN0OwotICAgIGJv
b2wgc3RhcnRQb3NpdGlvbk9mQ2hhcmFjdGVyQ2FsbGJhY2soRGF0YSosIGNvbnN0IFNWR0lubGlu
ZVRleHRCb3gqLCBjb25zdCBTVkdUZXh0Q2h1bmtQYXJ0JikgY29uc3Q7Ci0gICAgYm9vbCBlbmRQ
b3NpdGlvbk9mQ2hhcmFjdGVyQ2FsbGJhY2soRGF0YSosIGNvbnN0IFNWR0lubGluZVRleHRCb3gq
LCBjb25zdCBTVkdUZXh0Q2h1bmtQYXJ0JikgY29uc3Q7Ci0gICAgYm9vbCByb3RhdGlvbk9mQ2hh
cmFjdGVyQ2FsbGJhY2soRGF0YSosIGNvbnN0IFNWR0lubGluZVRleHRCb3gqLCBjb25zdCBTVkdU
ZXh0Q2h1bmtQYXJ0JikgY29uc3Q7Ci0gICAgYm9vbCBleHRlbnRPZkNoYXJhY3RlckNhbGxiYWNr
KERhdGEqLCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiwgY29uc3QgU1ZHVGV4dENodW5rUGFydCYp
IGNvbnN0OwotICAgIGJvb2wgY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbkNhbGxiYWNrKERhdGEq
LCBjb25zdCBTVkdJbmxpbmVUZXh0Qm94KiwgY29uc3QgU1ZHVGV4dENodW5rUGFydCYpIGNvbnN0
OwotCi1wcml2YXRlOgotICAgIFZlY3RvcjxTVkdJbmxpbmVUZXh0Qm94Kj4gbV90ZXh0Qm94ZXM7
Ci19OwotCi19Ci0KLSNlbmRpZgotI2VuZGlmCkluZGV4OiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
Y3BwCShyZXZpc2lvbiA2ODg2NykJKGZyb20gcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZS5jcHA6
Njg4NjcpCisrKyByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHdvcmtpbmcgY29w
eSkKSW5kZXg6IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAkocmV2aXNpb24gNjg4NjcpCShmcm9tIHJl
bmRlcmluZy9SZW5kZXJTVkdJbmxpbmUuaDo2ODg2NykKKysrIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmgJKHdvcmtpbmcgY29weSkKSW5kZXg6IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmVUZXh0LmNwcAkocmV2aXNpb24gNjg4NjcpCShmcm9tIHJlbmRlcmluZy9SZW5kZXJTVkdJbmxp
bmVUZXh0LmNwcDo2ODg2NykKKysrIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKSW5kZXg6IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCShy
ZXZpc2lvbiA2ODg2NykJKGZyb20gcmVuZGVyaW5nL1JlbmRlclNWR0lubGluZVRleHQuaDo2ODg2
NykKKysrIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCSh3b3JraW5nIGNvcHkp
CkluZGV4OiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcAkocmV2aXNpb24gNjg4NjcpCShmcm9tIHJl
bmRlcmluZy9SZW5kZXJTVkdUU3Bhbi5jcHA6Njg4NjcpCisrKyByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RTcGFuLmNwcAkod29ya2luZyBjb3B5KQpJbmRleDogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUU3Bhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uaAko
cmV2aXNpb24gNjg4NjcpCShmcm9tIHJlbmRlcmluZy9SZW5kZXJTVkdUU3Bhbi5oOjY4ODY3KQor
KysgcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5oCSh3b3JraW5nIGNvcHkpCkluZGV4OiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDY4ODY3KQkoZnJvbSByZW5kZXJpbmcvUmVu
ZGVyU1ZHVGV4dC5jcHA6Njg4NjcpCisrKyByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkluZGV4OiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gNjg4Njcp
CShmcm9tIHJlbmRlcmluZy9SZW5kZXJTVkdUZXh0Lmg6Njg4NjcpCisrKyByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHQuaAkod29ya2luZyBjb3B5KQpJbmRleDogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUZXh0UGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0UGF0aC5jcHAJKHJldmlzaW9uIDY4ODY3KQkoZnJvbSByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4
dFBhdGguY3BwOjY4ODY3KQorKysgcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAJ
KHdvcmtpbmcgY29weSkKSW5kZXg6IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQYXRoLmgJKHJldmlzaW9u
IDY4ODY3KQkoZnJvbSByZW5kZXJpbmcvUmVuZGVyU1ZHVGV4dFBhdGguaDo2ODg2NykKKysrIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaAkod29ya2luZyBjb3B5KQpJbmRleDogcmVu
ZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcv
c3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCShyZXZpc2lvbiA2ODg2NykJKGZyb20gcmVuZGVyaW5n
L1NWR0lubGluZUZsb3dCb3guY3BwOjY4ODY3KQorKysgcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVG
bG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpJbmRleDogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVG
bG93Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmgJ
KHJldmlzaW9uIDY4ODY3KQkoZnJvbSByZW5kZXJpbmcvU1ZHSW5saW5lRmxvd0JveC5oOjY4ODY3
KQorKysgcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmgJKHdvcmtpbmcgY29weSkKSW5k
ZXg6IHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVu
ZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gNjg4NjcpCShmcm9tIHJl
bmRlcmluZy9TVkdJbmxpbmVUZXh0Qm94LmNwcDo2ODg2NykKKysrIHJlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKSW5kZXg6IHJlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4
dEJveC5oCShyZXZpc2lvbiA2ODg2NykJKGZyb20gcmVuZGVyaW5nL1NWR0lubGluZVRleHRCb3gu
aDo2ODg2NykKKysrIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5oCSh3b3JraW5nIGNv
cHkpCkluZGV4OiByZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAJKHJldmlzaW9uIDY4ODY3KQko
ZnJvbSByZW5kZXJpbmcvU1ZHUm9vdElubGluZUJveC5jcHA6Njg4NjcpCisrKyByZW5kZXJpbmcv
c3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkluZGV4OiByZW5kZXJpbmcv
c3ZnL1NWR1Jvb3RJbmxpbmVCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvc3ZnL1NWR1Jv
b3RJbmxpbmVCb3guaAkocmV2aXNpb24gNjg4NjcpCShmcm9tIHJlbmRlcmluZy9TVkdSb290SW5s
aW5lQm94Lmg6Njg4NjcpCisrKyByZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guaAkod29y
a2luZyBjb3B5KQpJbmRleDogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFF1ZXJ5LmNwcAkocmV2aXNpb24gNjg4NjcpCShm
cm9tIHJlbmRlcmluZy9TVkdUZXh0UXVlcnkuY3BwOjY4ODY3KQorKysgcmVuZGVyaW5nL3N2Zy9T
VkdUZXh0UXVlcnkuY3BwCSh3b3JraW5nIGNvcHkpCkluZGV4OiByZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRRdWVyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9zdmcvU1ZHVGV4dFF1ZXJ5LmgJKHJl
dmlzaW9uIDY4ODY3KQkoZnJvbSByZW5kZXJpbmcvU1ZHVGV4dFF1ZXJ5Lmg6Njg4NjcpCisrKyBy
ZW5kZXJpbmcvc3ZnL1NWR1RleHRRdWVyeS5oCSh3b3JraW5nIGNvcHkpCg==
</data>
<flag name="review"
          id="59143"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>