<?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>99208</bug_id>
          
          <creation_ts>2012-10-12 14:21:24 -0700</creation_ts>
          <short_desc>Remove unnecessary mode identifiers added in r131111</short_desc>
          <delta_ts>2012-10-12 16:51:16 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>bajones</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>noam</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>741201</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-12 14:21:24 -0700</bug_when>
    <thetext>As per Darin&apos;s comment on https://bugs.webkit.org/show_bug.cgi?id=98571</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741207</commentid>
    <comment_count>1</comment_count>
      <attachid>168483</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-12 14:26:46 -0700</bug_when>
    <thetext>Created attachment 168483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741210</commentid>
    <comment_count>2</comment_count>
      <attachid>168483</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-10-12 14:28:04 -0700</bug_when>
    <thetext>Comment on attachment 168483
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741213</commentid>
    <comment_count>3</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-10-12 14:31:06 -0700</bug_when>
    <thetext>TY!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741259</commentid>
    <comment_count>4</comment_count>
      <attachid>168483</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 15:16:33 -0700</bug_when>
    <thetext>Comment on attachment 168483
Patch

Clearing flags on attachment: 168483

Committed r131231: &lt;http://trac.webkit.org/changeset/131231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741260</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 15:16:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741298</commentid>
    <comment_count>6</comment_count>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-12 16:13:27 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741299</commentid>
    <comment_count>7</comment_count>
      <attachid>168506</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-12 16:13:28 -0700</bug_when>
    <thetext>Created attachment 168506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741303</commentid>
    <comment_count>8</comment_count>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2012-10-12 16:19:45 -0700</bug_when>
    <thetext>Sorry, bad commit re-opened this issue. Closing again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741323</commentid>
    <comment_count>9</comment_count>
      <attachid>168506</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-12 16:51:16 -0700</bug_when>
    <thetext>Comment on attachment 168506
Patch

Wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168483</attachid>
            <date>2012-10-12 14:26:46 -0700</date>
            <delta_ts>2012-10-12 16:13:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99208-20121012142543.patch</filename>
            <type>text/plain</type>
            <size>14560</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTIyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEwLTEyICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3Nh
cnkgbW9kZSBpZGVudGlmaWVycyBhZGRlZCBpbiByMTMxMTExCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTIwOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92aW5nIHVubmVjZXNzYXJ5IG1vZGUgaWRl
bnRpZmllcnMgZnJvbSBjb29yZGluYXRlIGNvbnZlcnNpb24gbWV0aG9kcy4gVGhlc2UKKyAgICAg
ICAgd2VyZSBhZGRlZCBpbiBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzExMTEK
KworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJCb3hN
b2RlbE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAg
ICAoUmVuZGVySW5saW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6Cisg
ICAgICAgIChSZW5kZXJPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6
CisgICAgICAgIChSZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJT
VkdJbmxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aDoKKyAgICAgICAgKFJlbmRlclNWR01vZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFJlbmRlclNWR1Jvb3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oOgorICAgICAgICAoUmVuZGVyU1ZHVGV4dCk6
CisKIDIwMTItMTAtMTIgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTIwNApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24gMTMxMTk5KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzQsOSAr
NTc0LDkgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDb21wdXRl
U2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5l
QmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRl
c0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJv
b2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5k
ZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJh
bnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2Fs
UG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAogICAg
IHZvaWQgcGFpbnRSb290Qm94RmlsbExheWVycyhjb25zdCBQYWludEluZm8mKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJl
dmlzaW9uIDEzMTE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNl
bGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
ID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFu
c2Zvcm1TdGF0ZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0
IE9WRVJSSURFOwogCiAgICAgdm9pZCBoaWdoUXVhbGl0eVJlcGFpbnRUaW1lckZpcmVkKFRpbWVy
PFJlbmRlckJveE1vZGVsT2JqZWN0PiopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxMzExOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw3ICsxMzUsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0
bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RG
b3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91
dFJlY3QmLCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gQXBwbHlDb250
YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBj
b25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9y
UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDEzMTE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzA4LDggKzcwOCw4IEBAIHB1
YmxpYzoKIAogICAgIC8vIENvbnZlcnQgdGhlIGdpdmVuIGxvY2FsIHBvaW50IHRvIGFic29sdXRl
IGNvb3JkaW5hdGVzCiAgICAgLy8gRklYTUU6IFRlbXBvcmFyeS4gSWYgVXNlVHJhbnNmb3JtcyBp
cyB0cnVlLCB0YWtlIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LiBFdmVudHVhbGx5IGxvY2FsVG9B
YnNvbHV0ZSgpIHdpbGwgYWx3YXlzIGJlIHRyYW5zZm9ybS1hd2FyZS4KLSAgICBGbG9hdFBvaW50
IGxvY2FsVG9BYnNvbHV0ZShjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50ID0gRmxvYXRQb2lu
dCgpLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSAwKSBjb25zdDsKLSAgICBGbG9hdFBvaW50
IGFic29sdXRlVG9Mb2NhbChjb25zdCBGbG9hdFBvaW50JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlID0gMCkgY29uc3Q7CisgICAgRmxvYXRQb2ludCBsb2NhbFRvQWJzb2x1dGUoY29uc3QgRmxv
YXRQb2ludCYgbG9jYWxQb2ludCA9IEZsb2F0UG9pbnQoKSwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9
IDApIGNvbnN0OworICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9p
bnQmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gMCkgY29uc3Q7CiAKICAgICAvLyBDb252ZXJ0IGEg
bG9jYWwgcXVhZCB0byBhYnNvbHV0ZSBjb29yZGluYXRlcywgdGFraW5nIHRyYW5zZm9ybXMgaW50
byBhY2NvdW50LgogICAgIEZsb2F0UXVhZCBsb2NhbFRvQWJzb2x1dGVRdWFkKGNvbnN0IEZsb2F0
UXVhZCYgcXVhZCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCwgYm9vbCogd2FzRml4ZWQg
PSAwKSBjb25zdApAQCAtNzE4LDggKzcxOCw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBD
b252ZXJ0IGEgbG9jYWwgcXVhZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWlu
ZXIsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KLSAgICBGbG9hdFF1YWQgbG9jYWxU
b0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCwgYm9vbCogd2Fz
Rml4ZWQgPSAwKSBjb25zdDsKLSAgICBGbG9hdFBvaW50IGxvY2FsVG9Db250YWluZXJQb2ludChj
b25zdCBGbG9hdFBvaW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gMCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dDsKKyAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNG
bGFncyA9IDAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgRmxvYXRQb2ludCBsb2Nh
bFRvQ29udGFpbmVyUG9pbnQoY29uc3QgRmxvYXRQb2ludCYsIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSAwLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0OwogCiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgY29u
dGFpbmVyKCkgcmVuZGVyZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKS4gSW4gbXVsdGktY29sdW1u
IGxheW91dCwKICAgICAvLyBkaWZmZXJlbnQgb2Zmc2V0cyBhcHBseSBhdCBkaWZmZXJlbnQgcG9p
bnRzLCBzbyByZXR1cm4gdGhlIG9mZnNldCB0aGF0IGFwcGxpZXMgdG8gdGhlIGdpdmVuIHBvaW50
LgpAQCAtOTE3LDggKzkxNyw4IEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5kIHF1
YWRzIHRocm91Z2ggZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZb3Ug
c2hvdWxkIG5ldmVyIG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8gbG9j
YWxUb0Fic29sdXRlL2Fic29sdXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBB
cHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7Ci0gICAgdmlydHVh
bCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
VHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBv
aW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICAv
LyBQdXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBob3cgdG8gbWFwIGNv
b3JkaW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVyLCBvciBhbmNlc3Rv
clRvU3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgogICAgIC8vIFJldHVy
bnMgdGhlIHJlbmRlcmVyIHdoaWNoIHdhcyBtYXBwZWQgdG8gKGNvbnRhaW5lciBvciBhbmNlc3Rv
clRvU3RvcEF0KS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2
aXNpb24gMTMxMTk5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjA2LDkgKzIwNiw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Jl
bmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9y
bXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWlu
ZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBUcmFuc2Zv
cm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2lu
dChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZF
UlJJREU7CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAkocmV2aXNpb24gMTMxMTk5KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
ID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFu
c2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVlOyB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAkocmV2
aXNpb24gMTMxMTk5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBs
eUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQg
PSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVz
aE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3Rv
clRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAxMzExOTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZl
Y3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBi
b29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNG
bGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVy
T2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCShyZXZpc2lvbiAx
MzExOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAko
d29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5
b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29uc3QgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9T
dG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZpc2lv
biAxMzExOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQg
PSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVu
ZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRl
ck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQo
UmVuZGVyT2JqZWN0KikgT1ZFUlJJREU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168506</attachid>
            <date>2012-10-12 16:13:28 -0700</date>
            <delta_ts>2012-10-12 16:51:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99208-20121012161228.patch</filename>
            <type>text/plain</type>
            <size>60255</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRhYjdhZjM3Y2Q4ZDkz
MTU2M2VjNzY5YjM4MjA3OTcwNzU1MDdjZS4uODBiNzlmMWYwZmZiYzZmZTAyY2I4NWY3Y2E1YTFi
MjI4MjU1M2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTEyICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNf
ZWxlbWVudF9pbmRleF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgT0VT
X2VsZW1lbnRfaW5kZXhfdWludCBXZWJHTCBleHRlbnNpb24KKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6T0VTRWxlbWVudEluZGV4VWludDo6T0VTRWxlbWVudEluZGV4VWludCk6
CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50Ojp+T0VTRWxlbWVudEluZGV4
VWludCk6CisgICAgICAgIChXZWJDb3JlOjpPRVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChPRVNFbGVtZW50SW5kZXhVaW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJl
Y2lzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNp
b25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKwogMjAxMi0xMC0xMiAgTGV2aSBXZWlu
dHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5
IG1vZGUgaWRlbnRpZmllcnMgYWRkZWQgaW4gcjEzMTExMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBlODYxZDgwNzQ4Y2U1OTU2NGZiMjZjNjYwYjFlMDk1NzJkZDJmMDhkLi5hZDIxYjgxZDFlMmUy
MGE4NDU1YjM5YjIxZDE1MmE2OTg3OTUxZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTIw
LDYgKzUyMCw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmlk
bAogICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbAorICAgIGh0bWwvY2Fu
dmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXku
aWRsCiAgICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5pZGwKQEAgLTE0NzksNiArMTQ4MCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAogICAgIGh0bWwvY2FudmFz
L09FU1RleHR1cmVGbG9hdC5jcHAKICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHAKKyAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgIGh0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
CkBAIC0yNTMxLDYgKzI1MzMsNyBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9PRVNU
ZXh0dXJlRmxvYXQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0
LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuY3BwCkBAIC0yNTU4LDEyICsyNTYxLDE0IEBAIElGIChFTkFCTEVfV0VCR0wp
CiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvT0VT
VmVydGV4QXJyYXlPYmplY3QuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwCiAgICAgKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
ICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKICAgICAgICAgaHRtbC9jYW52
YXMvT0VTVGV4dHVyZUZsb2F0LmlkbAogICAgICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5pZGwKKyAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0YzE5OWM0
NjZhMDJhYjAyY2NhN2Q1ODczYzE3OTNjNDExNzY3OWRhLi42ODVjZjYyYTUyZGRjOTA5YWI1OWNh
YjQ4YmQ4ZDAzN2ZiYmYzNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3
Nyw2ICszNzcsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9JbnQxNkFycmF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQzMkFycmF5
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQppbmRleCA4NGM5ZDA3NzcxZWQxYTE3NDU2NjcyZTI3MWUzMzFiY2E0ZTY4NThlLi43
ZjQ2ODI3ZmVlZjc3ZTFhOTVjNzNkOTY5YjNkMmVlYzg3NTgyZWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCkBAIC0zMDEsNiArMzAxLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAk
JFBXRC9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJCRQV0Qv
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKyAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZv
LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIFwKICAgICAkJFBX
RC9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZjBlYjc3ZTkzZmRjZDFjMDA5OGQ4ZjY1NGRlZGFmNTA5
MmFkNzc1NS4uN2IxZmM1MWNjZjg4MGM4YjZkZTkxZDI1YWU1MGVmNDFjOGEwZGJmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NzksNiArNTc5LDggQEAgd2ViY29yZV9idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVGV4dHVyZUZsb2F0
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudEluZGV4VWludC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVtZW50SW5kZXhVaW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNPc2NpbGxhdG9yLmNwcCBcCkBAIC0xNTEyLDYgKzE1MTQsNyBA
QCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVG
bG9hdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
aWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5pZGwgXApAQCAtMzE4NCw2ICszMTg3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCBcCisJU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1
ZmZlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDhmYWViODBjNGNhNzYxNGU0MjY2MzcwNDZhMWIwOTA5
MDZiMjRlNmUuLjMwNGM3NTBhNmYyYzM0YmQ4NzgwNjFiZWE2ZTU0YmJiN2U1Y2M0NjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMzg5MSw2ICszODkxLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBo
dG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmggXAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmggXAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmggXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMVW5pZm9ybUxvY2F0aW9uLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTLmggXApAQCAtMzkyNCw2ICszOTI1LDcgQEAgZW5hYmxlPyhXRUJHTCkg
ewogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAg
XAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAgXAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDIxNGFjMjdlODMwOWZjZDZiYTcxYjAyZDYyNDNmZmViMjg0Y2Q5OTYuLjJiYWRmOTBm
NWE1NGU3YmQ2N2IxNjJiNWJlMjEzN2I0NTg3MTM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEx
NTgsNiArMTE1OCw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCcs
CisgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvVWludDMyQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50
OEFycmF5LmlkbCcsCkBAIC00MzA1LDYgKzQzMDYsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL09FU1RleHR1cmVGbG9hdC5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNWZXJ0
ZXhBcnJheU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRleEFy
cmF5T2JqZWN0LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50Lmgn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmgnLApAQCAtNzc4Miw2ICs3Nzg1LDggQEAKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVGV4dHVyZUZsb2F0Lmgn
LAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
RVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oJywKKyAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudElu
ZGV4VWludC5jcHAnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNPRVNFbGVtZW50SW5kZXhVaW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPdmVyZmxvd0V2ZW50LmNwcCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU092ZXJmbG93
RXZlbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZGI2MzFjODkzODNkZjk1Nzll
ZTQ3OTVhNjExZTczMGUzNzFkOGFlLi5mNjc5YjBlMThlZmUzY2EyMWEwN2YyODc4OWJiMWJmMjg5
ZmY2M2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xOTk2LDYgKzE5OTYsMTAgQEAKIAkJN0UxMkU5MTAxNUZBNUQzQTAwNUU0
MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UxMkU5MEUxNUZBNUQzQTAwNUU0MTI2IC8qIEN1
c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwICovOyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBC
RThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3
RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBC
MjkyNTAgLyogU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgKi87IH07CisJCTdFNDZGNkZBMTYyN0Ey
Q0EwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8q
IEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi87IH07CisJCTdFNDZGNkZCMTYyN0EyQ0EwMDA2
MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDZGNkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0Vs
ZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKKwkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9F
U0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVp
bnQuY3BwICovOyB9OworCQk3RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudElu
ZGV4VWludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsK
IAkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5
QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAq
LzsgfTsKIAkJN0U5OUFGNTMwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZElu
ZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4
NDVGMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDRDMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLzsgfTsKQEAgLTkyMjksNiArOTIzMywxMCBAQAog
CQk3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJNZXNo
R2VuZXJhdG9yLmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYx
NyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1
cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0UzN0VGMkQxMzM5
MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7IHBhdGggPSBjZi9T
dWJyZXNvdXJjZUxvYWRlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U0
NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTQ2RjZGOTE2MjdBMkM5MDAwNjIyMjMg
LyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTT0VTRWxlbWVudEluZGV4VWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNFbGVtZW50SW5kZXhVaW50LmNw
cDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT0VTRWxlbWVudEluZGV4
VWludC5oOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RTk5QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5k
aWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxs
b3dlZEluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ0QzEy
RDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNGLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1MTI5LDYgKzE1MTM3LDggQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAw
MTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQu
Y3BwICovLAorCQkJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmggKi8sCiAJCQkJNDlFRUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlk
bCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3Lmlk
bCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuY3BwICovLApAQCAtMTg0NzgsNiArMTg0ODgsOCBAQAogCQkJCUU0NDYxNDExMENENjgy
NjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuaCAqLywKIAkJCQkxMDU5NDU3NTE1QjQyQTBEMDA0
RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwICovLAogCQkJCTEwNTk0NTc5MTVCNDJB
NDMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oICovLAorCQkJCTdFNDZGNkY4MTYy
N0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovLAorCQkJCTdFNDZG
NkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLywKIAkJCQk5
MDAxNzg3RTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAq
LywKIAkJCQk5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRp
dmVzLmggKi8sCiAJCQkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZs
b2F0LmNwcCAqLywKQEAgLTI1NTk4LDYgKzI1NjEwLDggQEAKIAkJCQk1MTRCQzg0MzE2MUNGMDVD
MDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MjhCRDlF
MTYyNTM2OTYwMEM0MEI1NiAvKiBTaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ2llcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM5MUE5OTExNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyog
T0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U0NkY2RkIxNjI3QTJD
QTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
ODcwMiw2ICsyODcxNiw4IEBACiAJCQkJMzE5NTVBODYxNjBEMTk5MDAwODU4MDI1IC8qIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEJDODNGMTYxQ0Yw
NEEwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNEJD
ODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3RTVEN0E3NjE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3RTQ2RjZGQTE2MjdBMkNBMDAwNjIyMjMgLyogSlNPRVNFbGVt
ZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmlu
ZGV4IGY0YWY1NWQ4MjZiNmVhZmNlZmYyNTQyMGMwMGIxYzdhN2Y0NjJiMGUuLmM5M2YzNDAxZTcw
MWZiNzQ2NjExMTQ1OWVkNDMzOGM5YzUxNzc5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0ltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgorI2luY2x1ZGUg
IkpTT0VTRWxlbWVudEluZGV4VWludC5oIgogI2luY2x1ZGUgIkpTT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiSlNPRVNW
ZXJ0ZXhBcnJheU9iamVjdC5oIgpAQCAtNTcsNiArNTgsNyBAQAogI2luY2x1ZGUgIkpTV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50
LmgiCiAjaW5jbHVkZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1Rl
eHR1cmVGbG9hdC5oIgogI2luY2x1ZGUgIk9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCkBAIC0yMDAs
NiArMjAyLDggQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW4KICAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6
CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VT
VmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CiAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246
OldlYkdMRGVidWdTaGFkZXJzTmFtZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCmluZGV4IDA2MzU0OTY5ZDQ0ZDNjNDZhNTkzZGRhNTU0YTM1ZDJmMTA4Njk2NmQuLjQxNTY4
MzJkMmRjODRhNzI0NmJlNmQyNzU2NTU1NWUyMGQ0ZWZkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlY4SW50MTZB
cnJheS5oIgogI2luY2x1ZGUgIlY4SW50MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SW50OEFycmF5
LmgiCisjaW5jbHVkZSAiVjhPRVNFbGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVkZSAiVjhPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiVjhPRVNUZXh0dXJlRmxvYXQuaCIKICNp
bmNsdWRlICJWOE9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCkBAIC0xOTEsNiArMTkyLDEwIEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0
ZW5zaW9uLCB2ODo6SGFuZGxlPHY4CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3Rh
dGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0
LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVj
dE5hbWUiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVt
ZW50SW5kZXhVaW50TmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNf
Y2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNv
bGF0ZSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2VzRWxlbWVudEluZGV4VWludE5hbWUi
OworICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2Fz
dDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNv
bGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05h
bWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhV
aW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mOWRmMGJjMTVjMzkxNjE3Y2Q5MGI3ZjI0ZDc1ODQxY2UxMjIx
OTg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxl
bWVudEluZGV4VWludC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVp
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitPRVNFbGVtZW50SW5kZXhVaW50OjpPRVNF
bGVtZW50SW5kZXhVaW50KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdl
YkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK09FU0VsZW1lbnRJbmRleFVpbnQ6On5PRVNF
bGVtZW50SW5kZXhVaW50KCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUg
T0VTRWxlbWVudEluZGV4VWludDo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIE9FU0Vs
ZW1lbnRJbmRleFVpbnROYW1lOworfQorCitQYXNzT3duUHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+
IE9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRl
eHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBPRVNFbGVtZW50SW5kZXhVaW50KGNvbnRl
eHQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWlu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMyZDQyODczYTIwNTRkMDU4ODNhNzM5MzgxMTY4M2Y5MThlZWViYzQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50
SW5kZXhVaW50LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgT0VTRWxlbWVudElu
ZGV4VWludF9oCisjZGVmaW5lIE9FU0VsZW1lbnRJbmRleFVpbnRfaAorCisjaW5jbHVkZSAiV2Vi
R0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIE9FU0VsZW1lbnRJbmRleFVpbnQgOiBwdWJsaWMgV2ViR0xFeHRl
bnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPE9FU0VsZW1lbnRJbmRleFVp
bnQ+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1YWwgfk9FU0Vs
ZW1lbnRJbmRleFVpbnQoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNv
bnN0OworCitwcml2YXRlOgorICAgIE9FU0VsZW1lbnRJbmRleFVpbnQoV2ViR0xSZW5kZXJpbmdD
b250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBPRVNF
bGVtZW50SW5kZXhVaW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
RWxlbWVudEluZGV4VWludC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1NjQwMTUzZmI0ZjY1MWIyMjA2NTNk
MjhjNTMzYWNlZWFkOTgxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICAgICAgT21p
dENvbnN0cnVjdG9yCisgICAgXSBPRVNFbGVtZW50SW5kZXhVaW50IHsKKyAgICB9OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKaW5kZXggNjk2OGEwMmI0
Yjk5YWJhODdhNGNkMjE1ODIwMzY1ODk2ZjNjODEyMy4uZmZlYzYxNmNhYmY4MTBkNmNlMDI2NjUx
Nzg3N2EyYjdmNjU1MWYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4
dGVuc2lvbi5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViR0xEZWJ1Z1No
YWRlcnNOYW1lLAogICAgICAgICBXZWJLaXRXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWUs
IC8vIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVuc2lvbiBpcyBvZmZpY2lhbAogICAgICAgICBX
ZWJLaXRXZWJHTERlcHRoVGV4dHVyZU5hbWUsIC8vIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVu
c2lvbiBpcyBvZmZpY2lhbAorICAgICAgICBPRVNFbGVtZW50SW5kZXhVaW50TmFtZSwKICAgICB9
OwogCiAgICAgdm9pZCByZWYoKSB7IG1fY29udGV4dC0+cmVmKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDU4
MmVkNWQzOThhYzNmMjQ3ZWI2YWFlYjZlZWRhODVlMjk0ZTVjODQuLjBlMWY0YWJiZTNiMDFhOTA1
Yzc1MWEzMzkxZmZlNDM1ZjRjNjA2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRl
ICJPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0Lmgi
CiAjaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTE2OTAsNyArMTY5MSwxOCBA
QCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVFbGVtZW50QXJyYXlTaXplKEdD
M0RzaXplaSBjb3VudCwgR0MzRGVudW0gdAogICAgIGlmIChvZmZzZXQgPCAwKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdO
RURfU0hPUlQpIHsKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
SU5UKSB7CisgICAgICAgIC8vIEZvciBhbiB1bnNpZ25lZCBpbnQgYXJyYXksIG9mZnNldCBtdXN0
IGJlIGRpdmlzaWJsZSBieSA0IGZvciBhbGlnbm1lbnQgcmVhc29ucy4KKyAgICAgICAgaWYgKG9m
ZnNldCAlIDQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gTWFrZSB1
b2Zmc2V0IGFuIGVsZW1lbnQgb2Zmc2V0LgorICAgICAgICBvZmZzZXQgLz0gNDsKKworICAgICAg
ICBHQzNEc2l6ZWlwdHIgbiA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC8gNDsK
KyAgICAgICAgaWYgKG9mZnNldCA+IG4gfHwgY291bnQgPiBuIC0gb2Zmc2V0KQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQz
RDo6VU5TSUdORURfU0hPUlQpIHsKICAgICAgICAgLy8gRm9yIGFuIHVuc2lnbmVkIHNob3J0IGFy
cmF5LCBvZmZzZXQgbXVzdCBiZSBkaXZpc2libGUgYnkgMiBmb3IgYWxpZ25tZW50IHJlYXNvbnMu
CiAgICAgICAgIGlmIChvZmZzZXQgJSAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTcwOSw3ICsxNzIxLDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRWxl
bWVudEFycmF5U2l6ZShHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHQKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheUNv
bnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBpbnQmIG51bUVsZW1lbnRzUmVxdWlyZWQpCitib29s
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdD
M0RlbnVtIHR5cGUsIHVuc2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAgIC8vIFBl
cmZvcm1zIGNvbnNlcnZhdGl2ZSB2YWxpZGF0aW9uIGJ5IGNhY2hpbmcgYSBtYXhpbXVtIGluZGV4
IG9mCiAgICAgLy8gdGhlIGdpdmVuIHR5cGUgcGVyIGVsZW1lbnQgYXJyYXkgYnVmZmVyLiBJZiBh
bGwgb2YgdGhlIGJvdW5kCkBAIC0xNzQ2LDYgKzE3NTgsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBp
bnQmIG4KICAgICAgICAgICAgICAgICBtYXhJbmRleCA9IG1heChtYXhJbmRleCwgc3RhdGljX2Nh
c3Q8aW50PihwW2ldKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9JTlQ6IHsKKyAgICAgICAgICAgIGlmICgh
bV9vZXNFbGVtZW50SW5kZXhVaW50KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIG51bUVsZW1lbnRzIC89IHNpemVvZihHQzNEdWludCk7CisgICAgICAgICAgICBj
b25zdCBHQzNEdWludCogcCA9IHN0YXRpY19jYXN0PGNvbnN0IEdDM0R1aW50Kj4oYnVmZmVyLT5k
YXRhKCkpOworICAgICAgICAgICAgZm9yIChHQzNEc2l6ZWlwdHIgaSA9IDA7IGkgPCBudW1FbGVt
ZW50czsgaSsrKQorICAgICAgICAgICAgICAgIG1heEluZGV4ID0gbWF4KG1heEluZGV4LCBzdGF0
aWNfY2FzdDxpbnQ+KHBbaV0pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTE3
NjIsMTAgKzE3ODMsMTAgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5k
ZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCBpbnQmIG4KICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlQ
cmVjaXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2
YWxpZGF0ZUluZGV4QXJyYXlQcmVjaXNlKEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwg
R0MzRGludHB0ciBvZmZzZXQsIHVuc2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKQogewogICAg
IEFTU0VSVChjb3VudCA+PSAwICYmIG9mZnNldCA+PSAwKTsKLSAgICBpbnQgbGFzdEluZGV4ID0g
LTE7CisgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gMDsKICAgICAKICAgICBSZWZQdHI8V2ViR0xC
dWZmZXI+IGVsZW1lbnRBcnJheUJ1ZmZlciA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0
RWxlbWVudEFycmF5QnVmZmVyKCk7CiAKQEAgLTE3ODMsNyArMTgwNCwxNiBAQCBib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVJbmRleEFycmF5UHJlY2lzZShHQzNEc2l6ZWkgY291
bnQsIEdDM0RlbnVtCiAgICAgdW5zaWduZWQgbG9uZyB1b2Zmc2V0ID0gb2Zmc2V0OwogICAgIHVu
c2lnbmVkIGxvbmcgbiA9IGNvdW50OwogCi0gICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OlVOU0lHTkVEX1NIT1JUKSB7CisgICAgaWYgKHR5cGUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OlVOU0lHTkVEX0lOVCkgeworICAgICAgICAvLyBNYWtlIHVvZmZzZXQgYW4gZWxlbWVudCBvZmZz
ZXQuCisgICAgICAgIHVvZmZzZXQgLz0gc2l6ZW9mKEdDM0R1aW50KTsKKyAgICAgICAgY29uc3Qg
R0MzRHVpbnQqIHAgPSBzdGF0aWNfY2FzdDxjb25zdCBHQzNEdWludCo+KGVsZW1lbnRBcnJheUJ1
ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCktPmRhdGEoKSkgKyB1b2Zmc2V0OworICAgICAgICB3
aGlsZSAobi0tID4gMCkgeworICAgICAgICAgICAgaWYgKCpwID4gbGFzdEluZGV4KQorICAgICAg
ICAgICAgICAgIGxhc3RJbmRleCA9ICpwOworICAgICAgICAgICAgKytwOworICAgICAgICB9Cisg
ICAgfSBlbHNlIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVCkg
ewogICAgICAgICAvLyBNYWtlIHVvZmZzZXQgYW4gZWxlbWVudCBvZmZzZXQuCiAgICAgICAgIHVv
ZmZzZXQgLz0gc2l6ZW9mKEdDM0R1c2hvcnQpOwogICAgICAgICBjb25zdCBHQzNEdXNob3J0KiBw
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgR0MzRHVzaG9ydCo+KGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxl
bWVudEFycmF5QnVmZmVyKCktPmRhdGEoKSkgKyB1b2Zmc2V0OwpAQCAtMTgwNiw3ICsxODM2LDcg
QEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2Uo
R0MzRHNpemVpIGNvdW50LCBHQzNEZW51bQogICAgIHJldHVybiBudW1FbGVtZW50c1JlcXVpcmVk
ID4gMDsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVuZGVyaW5n
U3RhdGUoaW50IG51bUVsZW1lbnRzUmVxdWlyZWQpCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVSZW5kZXJpbmdTdGF0ZSh1bnNpZ25lZCBudW1FbGVtZW50c1JlcXVpcmVkKQog
ewogICAgIGlmICghbV9jdXJyZW50UHJvZ3JhbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTgyMyw3ICsxODUzLDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUmVu
ZGVyaW5nU3RhdGUoaW50IG51bUVsZW1lbnRzUmVxdWlyZWQpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgLy8gTG9vayBpbiBlYWNoIGNvbnN1bWVkIHZlcnRleCBhdHRyaWIgKGJ5IHRoZSBj
dXJyZW50IHByb2dyYW0pIGFuZCBmaW5kIHRoZSBzbWFsbGVzdCBidWZmZXIgc2l6ZQotICAgIGlu
dCBzbWFsbGVzdE51bUVsZW1lbnRzID0gSU5UX01BWDsKKyAgICB1bnNpZ25lZCBzbWFsbGVzdE51
bUVsZW1lbnRzID0gVUlOVF9NQVg7CiAgICAgaW50IG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyA9
IG1fY3VycmVudFByb2dyYW0tPm51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygpOwogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbnVtQWN0aXZlQXR0cmliTG9jYXRpb25zOyArK2kpIHsKICAgICAgICAg
aW50IGxvYyA9IG1fY3VycmVudFByb2dyYW0tPmdldEFjdGl2ZUF0dHJpYkxvY2F0aW9uKGkpOwpA
QCAtMTgzNCw3ICsxODY0LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRl
UmVuZGVyaW5nU3RhdGUoaW50IG51bUVsZW1lbnRzUmVxdWlyZWQpCiAgICAgICAgICAgICAgICAg
Ly8gRm9yIHRoZSBsYXN0IGVsZW1lbnQsIHdlIHdpbGwgb25seSB0b3VjaCB0aGUgZGF0YSBmb3Ig
dGhlCiAgICAgICAgICAgICAgICAgLy8gZWxlbWVudCBhbmQgbm90aGluZyBiZXlvbmQgaXQuCiAg
ICAgICAgICAgICAgICAgaW50IGJ5dGVzUmVtYWluaW5nID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0
ZS5idWZmZXJCaW5kaW5nLT5ieXRlTGVuZ3RoKCkgLSBzdGF0ZS5vZmZzZXQpOwotICAgICAgICAg
ICAgICAgIGludCBudW1FbGVtZW50cyA9IDA7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVt
RWxlbWVudHMgPSAwOwogICAgICAgICAgICAgICAgIEFTU0VSVChzdGF0ZS5zdHJpZGUgPiAwKTsK
ICAgICAgICAgICAgICAgICBpZiAoYnl0ZXNSZW1haW5pbmcgPj0gc3RhdGUuYnl0ZXNQZXJFbGVt
ZW50KQogICAgICAgICAgICAgICAgICAgICBudW1FbGVtZW50cyA9IDEgKyAoYnl0ZXNSZW1haW5p
bmcgLSBzdGF0ZS5ieXRlc1BlckVsZW1lbnQpIC8gc3RhdGUuc3RyaWRlOwpAQCAtMTkzNCw2ICsx
OTY0LDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkcmF3RWxlbWVudHMoR0MzRGVu
dW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5TSUdORURfQllURToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05F
RF9TSE9SVDoKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5T
SUdORURfSU5UOgorICAgICAgICBpZiAobV9vZXNFbGVtZW50SW5kZXhVaW50KQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJkcmF3RWxlbWVudHMiLCAiaW52YWxpZCB0eXBlIik7CisgICAgICAgIHJl
dHVybjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZHJhd0VsZW1lbnRzIiwgImludmFsaWQgdHlwZSIpOwog
ICAgICAgICByZXR1cm47CkBAIC0xOTU0LDcgKzE5ODksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0Mz
RGVudQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG51bUVsZW1lbnRzID0gMDsK
KyAgICB1bnNpZ25lZCBudW1FbGVtZW50cyA9IDA7CiAgICAgaWYgKCFpc0Vycm9yR2VuZXJhdGVk
T25PdXRPZkJvdW5kc0FjY2Vzc2VzKCkpIHsKICAgICAgICAgLy8gRW5zdXJlIHdlIGhhdmUgYSB2
YWxpZCByZW5kZXJpbmcgc3RhdGUKICAgICAgICAgaWYgKCF2YWxpZGF0ZUVsZW1lbnRBcnJheVNp
emUoY291bnQsIHR5cGUsIHN0YXRpY19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCkpKSB7CkBAIC0y
MzE1LDYgKzIzNTAsMTQgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsICJPRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91
aW50IikpIHsKKyAgICAgICAgaWYgKCFtX29lc0VsZW1lbnRJbmRleFVpbnQpIHsKKyAgICAgICAg
ICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxl
bWVudF9pbmRleF91aW50Iik7CisgICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBP
RVNFbGVtZW50SW5kZXhVaW50OjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG1fb2VzRWxlbWVudEluZGV4VWludC5nZXQoKTsKKyAgICB9CiAgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0IikKICAgICAgICAgLy8g
RklYTUU6IHJlbW92ZSB0aGlzIGFmdGVyIGEgY2VydGFpbiBncmFjZSBwZXJpb2QuCiAgICAgICAg
IHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfbG9zZV9jb250ZXh0IikpIHsKQEAg
LTI4MTYsNiArMjg1OSw4IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKICAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpOworICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4
X3VpbnQiKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIp
OwogICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQiKTsKICAgICBp
ZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCh0aGlzKSkKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CmluZGV4IDQ1ZGY2YTU4MjVmNDY4ZTg2ZGViMjg3Y2M4NWYwYzZhMjY3ODk1MmEuLjFkYTQ1YTM0
ZTA0M2YzMDY5N2JjMDM0MzhiNjc1NTJjMDE5YjE1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC00OSw2ICs0OSw3IEBA
IGNsYXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwogY2xhc3MgT0VT
VGV4dHVyZUZsb2F0OwogY2xhc3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CitjbGFzcyBPRVNFbGVt
ZW50SW5kZXhVaW50OwogY2xhc3MgV2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7
CiBjbGFzcyBXZWJHTENvbnRleHRHcm91cDsKQEAgLTM1OCwxMiArMzU5LDEyIEBAIHB1YmxpYzoK
ICAgICBib29sIHZhbGlkYXRlRWxlbWVudEFycmF5U2l6ZShHQzNEc2l6ZWkgY291bnQsIEdDM0Rl
bnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKIAogICAgIC8vIENvbnNlcnZhdGl2ZSBidXQg
cXVpY2sgaW5kZXggdmFsaWRhdGlvbgotICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5Q29uc2Vy
dmF0aXZlKEdDM0RlbnVtIHR5cGUsIGludCYgbnVtRWxlbWVudHNSZXF1aXJlZCk7CisgICAgYm9v
bCB2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWduZWQm
IG51bUVsZW1lbnRzUmVxdWlyZWQpOwogCiAgICAgLy8gUHJlY2lzZSBidXQgc2xvdyBpbmRleCB2
YWxpZGF0aW9uIC0tIG9ubHkgZG9uZSBpZiBjb25zZXJ2YXRpdmUgY2hlY2tzIGZhaWwKLSAgICBi
b29sIHZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0
eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgaW50JiBudW1FbGVtZW50c1JlcXVpcmVkKTsKKyAgICBi
b29sIHZhbGlkYXRlSW5kZXhBcnJheVByZWNpc2UoR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0
eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgdW5zaWduZWQmIG51bUVsZW1lbnRzUmVxdWlyZWQpOwog
ICAgIC8vIElmIG51bUVsZW1lbnRzIDw9IDAsIHdlIG9ubHkgY2hlY2sgaWYgZWFjaCBlbmFibGVk
IHZlcnRleCBhdHRyaWJ1dGUgaXMgYm91bmQgdG8gYSBidWZmZXIuCi0gICAgYm9vbCB2YWxpZGF0
ZVJlbmRlcmluZ1N0YXRlKGludCBudW1FbGVtZW50cyk7CisgICAgYm9vbCB2YWxpZGF0ZVJlbmRl
cmluZ1N0YXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzKTsKIAogICAgIGJvb2wgdmFsaWRhdGVXZWJH
TE9iamVjdChjb25zdCBjaGFyKiwgV2ViR0xPYmplY3QqKTsKIApAQCAtNTA1LDYgKzUwNiw3IEBA
IHB1YmxpYzoKICAgICBPd25QdHI8T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsK
ICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERlcml2YXRp
dmVzOwogICAgIE93blB0cjxPRVNWZXJ0ZXhBcnJheU9iamVjdD4gbV9vZXNWZXJ0ZXhBcnJheU9i
amVjdDsKKyAgICBPd25QdHI8T0VTRWxlbWVudEluZGV4VWludD4gbV9vZXNFbGVtZW50SW5kZXhV
aW50OwogICAgIE93blB0cjxXZWJHTExvc2VDb250ZXh0PiBtX3dlYmdsTG9zZUNvbnRleHQ7CiAg
ICAgT3duUHRyPFdlYkdMRGVidWdSZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5m
bzsKICAgICBPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCmluZGV4
IDQ4YjI2Y2UxMjJhOGFjMmNkNzYyZDNiNjc5MWZhZjhiZDI5MGJiNWEuLjJmNGMxMmMwMzk5OTli
ZDg3YTIzYWQ0N2JjZWRmZWIzZWEwNGMxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICAvLyAgIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgIC8vICAgR0xfT0VTX3JnYjhf
cmdiYTgKICAgICAvLyAgIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgLy8gICBHTF9P
RVNfZWxlbWVudF9pbmRleF91aW50CiAgICAgLy8gICBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UKICAgICAvLyAgIEdMX0FSQl90ZXh0dXJlX3JlY3RhbmdsZSAob25seSB0aGUgc3Vi
c2V0IHJlcXVpcmVkIHRvCiAgICAgLy8gICAgIGltcGxlbWVudCBJT1N1cmZhY2UgYmluZGluZzsg
aXQncyByZWNvbW1lbmRlZCB0byBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCmlu
ZGV4IGNjY2NkMzhiZjZjOWU4ZDQzNmEwODFmOTRlMjVlMGQ3NWY5ZTRiNmMuLjI1YjlkYjM4MWM4
NDc1ODkwNjNhMGI4MjdkMDYwMGQ2YWJjOWY3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
Y3BwCkBAIC0xNTUsNiArMTU1LDEwIEBAIGJvb2wgRXh0ZW5zaW9uczNET3BlbkdMOjpzdXBwb3J0
c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKG5hbWUgPT0gIkdMX09FU19z
dGFuZGFyZF9kZXJpdmF0aXZlcyIpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gRGVz
a3RvcCBHTCBhbHdheXMgc3VwcG9ydHMgVU5TSUdORURfSU5UIGluZGljZXMKKyAgICBpZiAobmFt
ZSA9PSAiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCisgICAgICAgIHJldHVybiB0cnVlOwor
CiAgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAg
ICAgICAgIHJldHVybiBtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0
dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTk0OWEwMjc3NzJjNzZmMWZlNTI0
M2ZmNTU2YzgzZGU4NmZiYzU0Yi4uMTBkY2M1YzY3NDE3NTlhMjk4NjFmM2UwY2QwZTY4YzcxMjkw
MGJkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTEyICBCcmFuZG9uIEpvbmVzICA8
YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPRVNfZWxlbWVudF9pbmRl
eF91aW50IC8gV0VCS0lUX09FU19lbGVtZW50X2luZGV4X3VpbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgT0VTX2VsZW1lbnRfaW5kZXhfdWlu
dCBleHRlbnNpb24gY29uZm9ybWFuY2UgdGVzdCBmcm9tIEtIUk9OT1MKKworICAgICAgICAqIGZh
c3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEwLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hyb21p
dW0tbWFjLXNub3dsZW9wYXJkIHJlYmFzZWxpbmUgZm9yIGEgc2xpZGVyLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRl
eC11aW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjUzYjk4NTQ5ZDk4ZmU2ZTI1ZTg0NDRk
ZGMxYzgzZTBmZWM5ODgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
MiBAQAorVGVzdHMgdGhhdCBpbmRleCB2YWxpZGF0aW9uIGZvciBkcmF3RWxlbWVudHMgZG9lcyBu
b3QgZXhhbWluZSB0b28gbWFueSBpbmRpY2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFdlYkdMIGNvbnRleHQgZXhpc3RzCitQQVNTIFN1Y2Nlc3NmdWxseSBlbmFibGVk
IE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5zaW9uCitQQVNTIE9FU19lbGVtZW50X2luZGV4
X3VpbnQgbGlzdGVkIGFzIHN1cHBvcnRlZCBhbmQgZ2V0RXh0ZW5zaW9uIHN1Y2NlZWRlZAorVGVz
dCB0aGF0IGRyYXdzIHdpdGggdW5zaWduZWQgaW50ZWdlciBpbmRpY2VzIHByb2R1Y2UgdGhlIGV4
cGVjdGVkIHJlc3VsdHMKK1BBU1MgRHJhdyAwIHBhc3NlZCBwaXhlbCB0ZXN0CitUZXN0aW5nIHdp
dGggdmFsaWQgaW5kaWNlcworUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQorUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdM
RVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdl
IGluZGljZXMKK0VuYWJsZSB2ZXJ0aWNlcywgdmFsaWQKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVT
LCAzLCBnbC5VTlNJR05FRF9JTlQsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorRW5hYmxlIG5vcm1hbHMsIG91dC1vZi1yYW5n
ZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGds
LmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFU
SU9OIDogCitUZXN0IHdpdGggZW5hYmxlZCBhdHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBiZWxvbmcg
dG8gY3VycmVudCBwcm9ncmFtCitFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbAor
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdsLmRy
YXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkgaXMgdW5kZWZp
bmVkLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9O
IDogCitFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggaW5zdWZmaWNpZW50IGRhdGEgYnVm
ZmVyCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1Mg
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKSBpcyB1
bmRlZmluZWQuCitQYXNzIGxhcmdlIG5lZ2F0aXZlIGluZGV4IHRvIHZlcnRleEF0dHJpYlBvaW50
ZXIKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogCitQ
QVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVEX0lOVCwgMCkg
aXMgdW5kZWZpbmVkLgorVGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5cyBjb3BpZWQgZHVy
aW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMKK1BBU1MgZ2wuZHJhd0VsZW1l
bnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBl
eHBlY3RlZCBHTCBlcnJvcjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklB
TkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wg
ZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVy
cm9yOiBJTlZBTElEX09QRVJBVElPTi4KK1BBU1MgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xF
X1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJv
cjogTk9fRVJST1IuCitQQVNTIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwg
Z2wuVU5TSUdORURfSU5ULCAwKSBnZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURf
T1BFUkFUSU9OLgorUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGds
LlVOU0lHTkVEX0lOVCwgOCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBJTlZBTElEX09Q
RVJBVElPTi4KK1Rlc3QgdGhhdCB1cGRhdGluZyB0aGUgc2l6ZSBvZiBhIHZlcnRleCBidWZmZXIg
aXMgcHJvcGVybHkgbm90aWNlZCBieSB0aGUgV2ViR0wgaW1wbGVtZW50YXRpb24uCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciBpbml0aWFsaXphdGlv
bgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgdmVy
dGV4IHNldHVwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBh
ZnRlciB0ZXh0dXJlIGNvb3JkIHNldHVwCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiBhZnRlciB2ZXJ0ZXggcmVkZWZpbml0aW9uCitQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciB0ZXh0dXJlIGNvb3JkaW5hdGUgLyBj
b2xvciByZWRlZmluaXRpb24KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IGFmdGVyIHNldHRpbmcgdXAgaW5kaWNlcworUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgZHJhd2luZworVGVzdCBvdXQgb2YgcmFuZ2UgaW5k
aWNlcworUEFTUyBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lH
TkVEX0lOVCwgNCkgZ2VuZXJhdGVkIGV4cGVjdGVkIEdMIGVycm9yOiBOT19FUlJPUi4KK1BBU1Mg
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDAp
IGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogSU5WQUxJRF9PUEVSQVRJT04uCitQQVNTIGds
LmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA4KSBn
ZW5lcmF0ZWQgZXhwZWN0ZWQgR0wgZXJyb3I6IElOVkFMSURfT1BFUkFUSU9OLgorVmVyaWZpZXMg
dGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNoIGlzIHdpdGhpbiBidWZmZXJTdWJE
YXRhIGRvZXMgbm90IGNyYXNoLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfVkFMVUUgOiBhZnRlciBhdHRlbXB0aW5nIHRvIHVwZGF0ZSBhIGJ1ZmZlciBvdXRzaWRl
IG9mIHRoZSBhbGxvY2F0ZWQgYm91bmRzCitQQVNTIGJ1ZmZlclN1YkRhdGEsIHdoZW4gYnVmZmVy
IG9iamVjdCB3YXMgaW5pdGlhbGl6ZWQgd2l0aCBudWxsLCBkaWQgbm90IGNyYXNoCitQQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0aGVyZSBzaG91bGQgYmUgbm8g
ZXJyb3JzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YzkyODQ0OTBiNDFkYTA5NDcyYmFhZGM3MTU3Yjc0MmUzMjkxMTE4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWlu
dC5odG1sCkBAIC0wLDAgKzEsMzk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgT0VTX2VsZW1lbnRfaW5kZXhf
dWludCBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Rl
c2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFz
IiBzdHlsZT0id2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPiA8L2NhbnZhcz4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIE9FU19lbGVtZW50X2luZGV4X3VpbnQgZXh0ZW5z
aW9uLCBpZiBpdCBpcyBhdmFpbGFibGUuIik7CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwordmFyIGV4dCA9IG51bGw7
Cit2YXIgdmFvID0gbnVsbDsKKworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdMIGNv
bnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiV2ViR0wg
Y29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIFF1ZXJ5IHRoZSBleHRlbnNpb24gYW5kIHN0b3Jl
IGdsb2JhbGx5IHNvIHNob3VsZEJlIGNhbiBhY2Nlc3MgaXQKKyAgICBleHQgPSBnbC5nZXRFeHRl
bnNpb24oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKKyAgICBpZiAoIWV4dCkgeworICAgICAg
ICB0ZXN0UGFzc2VkKCJObyBPRVNfZWxlbWVudF9pbmRleF91aW50IHN1cHBvcnQgLS0gdGhpcyBp
cyBsZWdhbCIpOworCisgICAgICAgIHJ1blN1cHBvcnRlZFRlc3QoZmFsc2UpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFibGVkIE9FU19lbGVtZW50
X2luZGV4X3VpbnQgZXh0ZW5zaW9uIik7CisKKyAgICAgICAgcnVuU3VwcG9ydGVkVGVzdCh0cnVl
KTsKKyAgICAgICAgcnVuRHJhd1Rlc3RzKCk7CisKKyAgICAgICAgLy8gVGhlc2UgdGVzdHMgYXJl
IHR3ZWFrZWQgZHVwbGljYXRlcyBvZiB0aGUgYnVmZmVycy9pbmRleC12YWxpZGF0aW9uKiB0ZXN0
cworICAgICAgICAvLyB1c2luZyB1bnNpZ25lZCBpbnQgaW5kaWNlcyB0byBlbnN1cmUgdGhhdCBi
ZWhhdmlvciByZW1haW5zIGNvbnNpc3RlbnQKKyAgICAgICAgcnVuSW5kZXhWYWxpZGF0aW9uVGVz
dHMoKTsKKyAgICAgICAgcnVuQ29waWVzSW5kaWNlc1Rlc3RzKCk7CisgICAgICAgIHJ1blJlc2l6
ZWRCdWZmZXJUZXN0cygpOworICAgICAgICBydW5WZXJpZmllc1Rvb01hbnlJbmRpY2VzVGVzdHMo
KTsKKyAgICAgICAgcnVuQ3Jhc2hXaXRoQnVmZmVyU3ViRGF0YVRlc3RzKCk7CisKKyAgICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBlcnJv
cnMiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5h
YmxlZCkgeworICAgIHZhciBzdXBwb3J0ZWQgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7
CisgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9mKCJPRVNfZWxlbWVudF9pbmRleF91aW50IikgPj0g
MCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdFBh
c3NlZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRF
eHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJPRVNfZWxlbWVudF9pbmRleF91aW50IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdl
dEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlm
IChleHRlbnNpb25FbmFibGVkKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPRVNfZWxlbWVu
dF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3Vj
Y2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPRVNf
ZWxlbWVudF9pbmRleF91aW50IG5vdCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNp
b24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVu
Y3Rpb24gcnVuRHJhd1Rlc3RzKCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgZHJhd3Mgd2l0aCB1
bnNpZ25lZCBpbnRlZ2VyIGluZGljZXMgcHJvZHVjZSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyIpOwor
ICAgIAorICAgIGNhbnZhcy53aWR0aCA9IDUwOyBjYW52YXMuaGVpZ2h0ID0gNTA7CisgICAgZ2wu
dmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAKKyAgICB2
YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbShnbCk7CisKKyAg
ICBmdW5jdGlvbiBzZXR1cERyYXcocykgeworICAgICAgICAvLyBDcmVhdGUgYSB2ZXJ0ZXggYnVm
ZmVyIHRoYXQgY2Fubm90IGJlIGZ1bGx5IGluZGV4ZWQgdmlhIHNob3J0cworICAgICAgICB2YXIg
cXVhZEFycmF5TGVuID0gNjU1MzcgKiAzOworICAgICAgICB2YXIgcXVhZEFycmF5ID0gbmV3IEZs
b2F0MzJBcnJheShxdWFkQXJyYXlMZW4pOworICAgICAgICAKKyAgICAgICAgLy8gTGVhdmUgYWxs
IGJ1dCB0aGUgbGFzdCA0IHZhbHVlcyB6ZXJvLWVkIG91dAorICAgICAgICB2YXIgaWR4ID0gcXVh
ZEFycmF5TGVuIC0gMTI7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQgdGhlIGxhc3QgNCB2YWx1
ZXMgdG8gYSBxdWFkCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAg
ICBxdWFkQXJyYXlbaWR4KytdID0gMS4wICogczsKKyAgICAgICAgcXVhZEFycmF5W2lkeCsrXSA9
IDAuMDsKKworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1
YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4w
OworCisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAtMS4wICogczsKKyAgICAgICAgcXVhZEFy
cmF5W2lkeCsrXSA9IC0xLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlbaWR4KytdID0gMC4wOwor
CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAxLjAgKiBzOworICAgICAgICBxdWFkQXJyYXlb
aWR4KytdID0gLTEuMCAqIHM7CisgICAgICAgIHF1YWRBcnJheVtpZHgrK10gPSAwLjA7CisKKyAg
ICAgICAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICAgICAgZ2wuYnVm
ZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHF1YWRBcnJheSwgZ2wuU1RBVElDX0RSQVcpOworCisg
ICAgICAgIC8vIENyZWF0ZSBhbiB1bnNpZ25lZCBpbnQgaW5kZXggYnVmZmVyIHRoYXQgaW5kZXhl
cyB0aGUgbGFzdCA0IHZlcnRpY2VzCisgICAgICAgIHZhciBiYXNlSW5kZXggPSAocXVhZEFycmF5
TGVuIC8gMykgLSA0OworCisgICAgICAgIHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRl
eE9iamVjdCk7CisgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIs
IG5ldyBVaW50MzJBcnJheShbCisgICAgICAgICAgICBiYXNlSW5kZXggKyAwLAorICAgICAgICAg
ICAgYmFzZUluZGV4ICsgMSwKKyAgICAgICAgICAgIGJhc2VJbmRleCArIDIsCisgICAgICAgICAg
ICBiYXNlSW5kZXggKyAyLAorICAgICAgICAgICAgYmFzZUluZGV4ICsgMywKKyAgICAgICAgICAg
IGJhc2VJbmRleCArIDBdKSwgZ2wuU1RBVElDX0RSQVcpOworCisgICAgICAgIHZhciBvcHRfcG9z
aXRpb25Mb2NhdGlvbiA9IDA7CisgICAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KG9w
dF9wb3NpdGlvbkxvY2F0aW9uKTsKKyAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihvcHRf
cG9zaXRpb25Mb2NhdGlvbiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICB9OworICAg
IGZ1bmN0aW9uIHJlYWRMb2NhdGlvbih4LCB5KSB7CisgICAgICAgIHZhciBwaXhlbHMgPSBuZXcg
VWludDhBcnJheSgxICogMSAqIDQpOworICAgICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIDEsIDEs
IGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7CisgICAgICAgIHJldHVybiBwaXhl
bHM7CisgICAgfTsKKyAgICBmdW5jdGlvbiB0ZXN0UGl4ZWwoYmxhY2tMaXN0LCB3aGl0ZUxpc3Qp
IHsKKyAgICAgICAgZnVuY3Rpb24gdGVzdExpc3QobGlzdCwgZXhwZWN0ZWQpIHsKKyAgICAgICAg
ICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbGlzdC5sZW5ndGg7IG4rKykgeworICAgICAgICAgICAg
ICAgIHZhciBsID0gbGlzdFtuXTsKKyAgICAgICAgICAgICAgICB2YXIgeCA9IC1NYXRoLmZsb29y
KGwgKiBjYW52YXMud2lkdGggLyAyKSArIGNhbnZhcy53aWR0aCAvIDI7CisgICAgICAgICAgICAg
ICAgdmFyIHkgPSAtTWF0aC5mbG9vcihsICogY2FudmFzLmhlaWdodCAvIDIpICsgY2FudmFzLmhl
aWdodCAvIDI7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IHJlYWRMb2NhdGlvbih4LCB5
KTsKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoc291cmNlWzBdIC0gZXhwZWN0ZWQpID4g
MikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHRlc3RMaXN0KGJsYWNrTGlzdCwgMCkgJiYgdGVzdExpc3Qod2hpdGVMaXN0
LCAyNTUpOworICAgIH07CisgICAgZnVuY3Rpb24gdmVyaWZ5RHJhdyhkcmF3TnVtYmVyLCBzKSB7
CisgICAgICAgIGdsLmNsZWFyQ29sb3IoMS4wLCAxLjAsIDEuMCwgMS4wKTsKKyAgICAgICAgZ2wu
Y2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworICAgICAg
ICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJR05FRF9JTlQsIDApOwor
CisgICAgICAgIHZhciBibGFja0xpc3QgPSBbXTsKKyAgICAgICAgdmFyIHdoaXRlTGlzdCA9IFtd
OworICAgICAgICB2YXIgcG9pbnRzID0gWzAuMCwgMC4yLCAwLjQsIDAuNiwgMC44LCAxLjBdOwor
ICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IHBvaW50cy5sZW5ndGg7IG4rKykgeworICAgICAg
ICAgICAgaWYgKHBvaW50c1tuXSA8PSBzKSB7CisgICAgICAgICAgICAgICAgYmxhY2tMaXN0LnB1
c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd2hp
dGVMaXN0LnB1c2gocG9pbnRzW25dKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBpZiAodGVzdFBpeGVsKGJsYWNrTGlzdCwgd2hpdGVMaXN0KSkgeworICAgICAgICAgICAgdGVz
dFBhc3NlZCgiRHJhdyAiICsgZHJhd051bWJlciArICIgcGFzc2VkIHBpeGVsIHRlc3QiKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkRyYXcgIiArIGRyYXdOdW1i
ZXIgKyAiIGZhaWxlZCBwaXhlbCB0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc2V0
dXBEcmF3KDAuNSk7CisgICAgdmVyaWZ5RHJhdygwLCAwLjUpOworfQorCitmdW5jdGlvbiBydW5J
bmRleFZhbGlkYXRpb25UZXN0cygpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpbmRl
eCB2YWxpZGF0aW9uIHZlcmlmaWVzIHRoZSBjb3JyZWN0IG51bWJlciBvZiBpbmRpY2VzIik7CisK
KyAgICBmdW5jdGlvbiBzaXplSW5CeXRlcyh0eXBlKSB7CisgICAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICAgIGNhc2UgZ2wuQllURToKKyAgICAgIGNhc2UgZ2wuVU5TSUdORURfQllURToKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgICBjYXNlIGdsLlNIT1JUOgorICAgICAgY2FzZSBnbC5VTlNJR05F
RF9TSE9SVDoKKyAgICAgICAgcmV0dXJuIDI7CisgICAgICBjYXNlIGdsLklOVDoKKyAgICAgIGNh
c2UgZ2wuVU5TSUdORURfSU5UOgorICAgICAgY2FzZSBnbC5GTE9BVDoKKyAgICAgICAgcmV0dXJu
IDQ7CisgICAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAidW5rbm93biB0eXBlIjsKKyAgICAg
IH0KKyAgICB9CisKKyAgICB2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dyYW0oZ2wpOwor
CisgICAgLy8gMyB2ZXJ0aWNlcyA9PiAxIHRyaWFuZ2xlLCBpbnRlcmxlYXZlZCBkYXRhCisgICAg
dmFyIGRhdGFDb21wbGV0ZSA9IG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDAsIDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDAsIDAsIDEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsIDEsIDEsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsIDAsIDFdKTsKKyAgICB2YXIgZGF0YUluY29tcGxldGUgPSBuZXcg
RmxvYXQzMkFycmF5KFswLCAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsIDAsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwgMCwgMCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEsIDEsIDEsIDFdKTsKKyAgICB2YXIgaW5kaWNlcyA9IG5ldyBVaW50MzJBcnJheShbMCwg
MSwgMl0pOworCisgICAgZGVidWcoIlRlc3Rpbmcgd2l0aCB2YWxpZCBpbmRpY2VzIik7CisKKyAg
ICB2YXIgYnVmZmVyQ29tcGxldGUgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVm
ZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyQ29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEo
Z2wuQVJSQVlfQlVGRkVSLCBkYXRhQ29tcGxldGUsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICB2YXIg
ZWxlbWVudHMgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBlbGVtZW50cyk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7CisgICAgdmFyIHZlcnRleExvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHBy
b2dyYW0sICJhX3ZlcnRleCIpOworICAgIHZhciBub3JtYWxMb2MgPSBnbC5nZXRBdHRyaWJMb2Nh
dGlvbihwcm9ncmFtLCAiYV9ub3JtYWwiKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHZl
cnRleExvYywgNCwgZ2wuRkxPQVQsIGZhbHNlLCA3ICogc2l6ZUluQnl0ZXMoZ2wuRkxPQVQpLCAw
KTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh2ZXJ0ZXhMb2MpOworICAgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXpl
SW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOworICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7CisgICAgc2hvdWxkQmUoJ2dsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBM
RVRFJyk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgc2hvdWxk
QmVVbmRlZmluZWQoJ2dsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDMsIGdsLlVOU0lHTkVE
X0lOVCwgMCknKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKworICAg
IGRlYnVnKCJUZXN0aW5nIHdpdGggb3V0LW9mLXJhbmdlIGluZGljZXMiKTsKKworICAgIHZhciBi
dWZmZXJJbmNvbXBsZXRlID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIGJ1ZmZlckluY29tcGxldGUpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
QVJSQVlfQlVGRkVSLCBkYXRhSW5jb21wbGV0ZSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLnZl
cnRleEF0dHJpYlBvaW50ZXIodmVydGV4TG9jLCA0LCBnbC5GTE9BVCwgZmFsc2UsIDcgKiBzaXpl
SW5CeXRlcyhnbC5GTE9BVCksIDApOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHZl
cnRleExvYyk7CisgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG5vcm1hbExvYyk7Cisg
ICAgZGVidWcoIkVuYWJsZSB2ZXJ0aWNlcywgdmFsaWQiKTsKKyAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgnZ2wuZHJhd0VsZW1lbnRz
KGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScpOworICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIGRlYnVnKCJFbmFibGUgbm9ybWFscywgb3V0LW9m
LXJhbmdlIik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihub3JtYWxMb2MsIDMsIGdsLkZM
T0FULCBmYWxzZSwgNyAqIHNpemVJbkJ5dGVzKGdsLkZMT0FUKSwgNCAqIHNpemVJbkJ5dGVzKGds
LkZMT0FUKSk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkobm9ybWFsTG9jKTsKKyAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZCgnZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgMywgZ2wuVU5TSUdORURfSU5ULCAwKScp
OworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04pOworCisgICAg
ZGVidWcoIlRlc3Qgd2l0aCBlbmFibGVkIGF0dHJpYnV0ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyB0
byBjdXJyZW50IHByb2dyYW0iKTsKKworICAgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShu
b3JtYWxMb2MpOworICAgIHZhciBleHRyYUxvYyA9IE1hdGgubWF4KHZlcnRleExvYywgbm9ybWFs
TG9jKSArIDE7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoZXh0cmFMb2MpOworICAg
IGRlYnVnKCJFbmFibGUgYW4gZXh0cmEgYXR0cmlidXRlIHdpdGggbnVsbCIpOworICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5k
cmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7CisgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTik7CisgICAgZGVidWcoIkVu
YWJsZSBhbiBleHRyYSBhdHRyaWJ1dGUgd2l0aCBpbnN1ZmZpY2llbnQgZGF0YSBidWZmZXIiKTsK
KyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGV4dHJhTG9jLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIDQgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCkpOwor
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJlVW5kZWZp
bmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDAp
Jyk7CisgICAgZGVidWcoIlBhc3MgbGFyZ2UgbmVnYXRpdmUgaW5kZXggdG8gdmVydGV4QXR0cmli
UG9pbnRlciIpOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIobm9ybWFsTG9jLCAzLCBnbC5G
TE9BVCwgZmFsc2UsIDcgKiBzaXplSW5CeXRlcyhnbC5GTE9BVCksIC0yMDAwMDAwMDAwICogc2l6
ZUluQnl0ZXMoZ2wuRkxPQVQpKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURf
VkFMVUUpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCdnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5H
TEVTLCAzLCBnbC5VTlNJR05FRF9JTlQsIDApJyk7Cit9CisKK2Z1bmN0aW9uIHJ1bkNvcGllc0lu
ZGljZXNUZXN0cygpIHsKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IGNsaWVudCBkYXRhIGlzIGFsd2F5
cyBjb3BpZWQgZHVyaW5nIGJ1ZmZlckRhdGEgYW5kIGJ1ZmZlclN1YkRhdGEgY2FsbHMiKTsKKwor
ICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAgICBnbC51c2VQ
cm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIo
KTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5iaW5kQnVmZmVy
KGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICAvLyA0IHZlcnRpY2VzIC0+IDIg
dHJpYW5nbGVzCisgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMy
QXJyYXkoWyAwLDAsMCwgMCwxLDAsIDEsMCwwLCAxLDEsMCBdKSwgZ2wuU1RBVElDX0RSQVcpOwor
ICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsK
KworICAgIHZhciBpbmRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworCisgICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kZXhPYmplY3QpOworICAgIHZhciBp
bmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pOwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMsIGdsLlNU
QVRJQ19EUkFXKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAi
Z2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQp
Iik7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwg
ImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAw
KSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwg
OCkiKTsKKyAgICBpbmRpY2VzWzBdID0gMjsKKyAgICBpbmRpY2VzWzVdID0gMTsKKyAgICBzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRS
SUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQsIDQpIik7CisgICAgc2hvdWxkR2VuZXJh
dGVHTEVycm9yKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImdsLmRyYXdFbGVtZW50cyhnbC5U
UklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCAwKSIpOworICAgIHNob3VsZEdlbmVy
YXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sICJnbC5kcmF3RWxlbWVudHMoZ2wu
VFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwgOCkiKTsKK30KKworZnVuY3Rpb24g
cnVuUmVzaXplZEJ1ZmZlclRlc3RzKCkgeworICAgIGRlYnVnKCJUZXN0IHRoYXQgdXBkYXRpbmcg
dGhlIHNpemUgb2YgYSB2ZXJ0ZXggYnVmZmVyIGlzIHByb3Blcmx5IG5vdGljZWQgYnkgdGhlIFdl
YkdMIGltcGxlbWVudGF0aW9uLiIpOworCisgICAgdmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0o
Z2wsICJ2cyIsICJmcyIsIFsidlBvc2l0aW9uIiwgInZDb2xvciJdKTsKKyAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAiYWZ0ZXIgaW5pdGlhbGl6YXRpb24iKTsKKworICAgIHZh
ciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGds
LkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZ
X0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWy0xLDEsMCwgMSwxLDAsIC0xLC0x
LDAsCisgICAgICAgICAtMSwtMSwwLCAxLDEsMCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsK
KyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgImFmdGVyIHZlcnRleCBzZXR1cCIpOworCisgICAgdmFyIHRleENv
b3JkT2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIHRleENvb3JkT2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgbmV3IEZsb2F0MzJBcnJheSgKKyAgICAgICAgWzAsMCwgMSwwLCAwLDEsCisgICAgICAg
ICAwLDEsIDEsMCwgMSwxXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSgxKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FU
LCBmYWxzZSwgMCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgImFm
dGVyIHRleHR1cmUgY29vcmQgc2V0dXAiKTsKKworICAgIC8vIE5vdyByZXNpemUgdGhlc2UgYnVm
ZmVycyBiZWNhdXNlIHdlIHdhbnQgdG8gY2hhbmdlIHdoYXQgd2UncmUgZHJhd2luZy4KKyAgICBn
bC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisgICAgICAgIC0xLDEs
MCwgMSwxLDAsIC0xLC0xLDAsIDEsLTEsMCwKKyAgICAgICAgLTEsMSwwLCAxLDEsMCwgLTEsLTEs
MCwgMSwtMSwwXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SLCAiYWZ0ZXIgdmVydGV4IHJlZGVmaW5pdGlvbiIpOworICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29yZE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShn
bC5BUlJBWV9CVUZGRVIsIG5ldyBVaW50OEFycmF5KFsKKyAgICAgICAgMjU1LCAwLCAwLCAyNTUs
CisgICAgICAgIDI1NSwgMCwgMCwgMjU1LAorICAgICAgICAyNTUsIDAsIDAsIDI1NSwKKyAgICAg
ICAgMjU1LCAwLCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwgMjU1LAorICAgICAgICAwLCAy
NTUsIDAsIDI1NSwKKyAgICAgICAgMCwgMjU1LCAwLCAyNTUsCisgICAgICAgIDAsIDI1NSwgMCwg
MjU1XSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDQs
IGdsLlVOU0lHTkVEX0JZVEUsIGZhbHNlLCAwLCAwKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAiYWZ0ZXIgdGV4dHVyZSBjb29yZGluYXRlIC8gY29sb3IgcmVkZWZpbml0
aW9uIik7CisKKyAgICB2YXIgbnVtUXVhZHMgPSAyOworICAgIHZhciBpbmRpY2VzID0gbmV3IFVp
bnQzMkFycmF5KG51bVF1YWRzICogNik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVF1
YWRzOyArK2lpKSB7CisgICAgICAgIHZhciBvZmZzZXQgPSBpaSAqIDY7CisgICAgICAgIHZhciBx
dWFkID0gKGlpID09IChudW1RdWFkcyAtIDEpKSA/IDQgOiAwOworICAgICAgICBpbmRpY2VzW29m
ZnNldCArIDBdID0gcXVhZCArIDA7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsgMV0gPSBxdWFk
ICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyAyXSA9IHF1YWQgKyAyOworICAgICAgICBp
bmRpY2VzW29mZnNldCArIDNdID0gcXVhZCArIDI7CisgICAgICAgIGluZGljZXNbb2Zmc2V0ICsg
NF0gPSBxdWFkICsgMTsKKyAgICAgICAgaW5kaWNlc1tvZmZzZXQgKyA1XSA9IHF1YWQgKyAzOwor
ICAgIH0KKyAgICB2YXIgaW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5i
aW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wu
YnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RS
QVcpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJhZnRlciBzZXR0aW5n
IHVwIGluZGljZXMiKTsKKyAgICBnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVTLCBudW1RdWFk
cyAqIDYsIGdsLlVOU0lHTkVEX0lOVCwgMCk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUiwgImFmdGVyIGRyYXdpbmciKTsKK30KKworZnVuY3Rpb24gcnVuVmVyaWZpZXNUb29N
YW55SW5kaWNlc1Rlc3RzKCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGluZGV4IHZh
bGlkYXRpb24gZm9yIGRyYXdFbGVtZW50cyBkb2VzIG5vdCBleGFtaW5lIHRvbyBtYW55IGluZGlj
ZXMiKTsKKworICAgIHZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3JhbShnbCk7CisKKyAg
ICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICBnbC5k
aXNhYmxlVmVydGV4QXR0cmliQXJyYXkoMSk7CisgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9C
VUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAgLy8gNCB2ZXJ0aWNlcyAtPiAyIHRyaWFuZ2xlcwor
ICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCww
LDAsIDAsMSwwLCAxLDAsMCwgMSwxLDAgXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC52ZXJ0
ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisKKyAgICB2YXIg
aW5kZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKworICAgIGRlYnVnKCJUZXN0IG91dCBv
ZiByYW5nZSBpbmRpY2VzIikKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVG
RkVSLCBpbmRleE9iamVjdCk7CisgICAgZ2wuYnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JV
RkZFUiwgbmV3IFVpbnQzMkFycmF5KFsgMTAwMDAsIDAsIDEsIDIsIDMsIDEwMDAwIF0pLCBnbC5T
VEFUSUNfRFJBVyk7CisgICAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwg
ImdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRV9TVFJJUCwgNCwgZ2wuVU5TSUdORURfSU5ULCA0
KSIpOworICAgIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04s
ICJnbC5kcmF3RWxlbWVudHMoZ2wuVFJJQU5HTEVfU1RSSVAsIDQsIGdsLlVOU0lHTkVEX0lOVCwg
MCkiKTsKKyAgICBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9O
LCAiZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFX1NUUklQLCA0LCBnbC5VTlNJR05FRF9JTlQs
IDgpIik7Cit9CisKK2Z1bmN0aW9uIHJ1bkNyYXNoV2l0aEJ1ZmZlclN1YkRhdGFUZXN0cygpIHsK
KyAgICBkZWJ1ZygnVmVyaWZpZXMgdGhhdCB0aGUgaW5kZXggdmFsaWRhdGlvbiBjb2RlIHdoaWNo
IGlzIHdpdGhpbiBidWZmZXJTdWJEYXRhIGRvZXMgbm90IGNyYXNoLicpCisKKyAgICB2YXIgZWxl
bWVudEJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVIsIGVsZW1lbnRCdWZmZXIpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wu
RUxFTUVOVF9BUlJBWV9CVUZGRVIsIDI1NiwgZ2wuU1RBVElDX0RSQVcpOworICAgIHZhciBkYXRh
ID0gbmV3IFVpbnQzMkFycmF5KDEyNyk7CisgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgNjQsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5W
QUxJRF9WQUxVRSwgImFmdGVyIGF0dGVtcHRpbmcgdG8gdXBkYXRlIGEgYnVmZmVyIG91dHNpZGUg
b2YgdGhlIGFsbG9jYXRlZCBib3VuZHMiKTsKKyAgICB0ZXN0UGFzc2VkKCJidWZmZXJTdWJEYXRh
LCB3aGVuIGJ1ZmZlciBvYmplY3Qgd2FzIGluaXRpYWxpemVkIHdpdGggbnVsbCwgZGlkIG5vdCBj
cmFzaCIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzNkM2JjMWI5ZmQ4M2FmZWZlZDYyZTc3
MTM3NjIyNWIxYTAxZTdhZC4uZGVjOTAxNzNiZmI3NTIwZjllMzU4NTdkZmRkYWM3MWI5N2RiMzc3
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MSw2
ICszNzEsOSBAQCBmYXN0L2Nzcy9kcmFnZ2FibGUtcmVnaW9uLXBhcnNlci5odG1sCiAjIGh0dHA6
Ly93ZWJraXQub3JnL2IvOTY4MjgKIGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXkt
b2JqZWN0Lmh0bWwKIAorIyBFeHBlY3RlZCB0byBmYWlsIHVudGlsIE9FU19lbGVtZW50X2luZGV4
X3VpbnQgZXh0ZW5zaW9uIGlzIGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTgyNTcgZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIFsgRmFpbHVyZSBQYXNzIF0K
KwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgVEVTVFMgRVhQRUNURUQgVE8g
RkFJTAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTRlMzkwOGIyMTNjMDdjN2NhY2RlMzkxOTJk
ODBiYjI1OTFhNTNkZS4uMzAyNTg0ZGQ3NDhmYmQ5ODJlYzdmZDUzODIzMDFhNmNiYWMzNGYwYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE5MSw2ICsx
OTEsNyBAQCBmYXN0L2NhbnZhcy93ZWJnbC92aWV3cG9ydC11bmNoYW5nZWQtdXBvbi1yZXNpemUu
aHRtbAogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtYXJyYXktaW52YWxpZC1yYW5nZXMuaHRtbAog
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRtbAogZmFzdC9jYW52YXMvd2ViZ2wv
b2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbAorZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1l
bnQtaW5kZXgtdWludC5odG1sCiBmYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5o
dG1sCiBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwK
IGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2Fk
Lmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>