<?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>98113</bug_id>
          
          <creation_ts>2012-10-01 22:25:17 -0700</creation_ts>
          <short_desc>Remove the Safari 2 -&gt; Safari 3 icon database import code.</short_desc>
          <delta_ts>2012-10-02 00:05:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>732269</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-01 22:25:17 -0700</bug_when>
    <thetext>Remove the Safari 2 -&gt; Safari 3 icon database import code.

The Safari 3-style icon database has been in shipping products since Fall 2007.  Supporting this import seems unimportant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732293</commentid>
    <comment_count>1</comment_count>
      <attachid>166610</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-01 23:01:23 -0700</bug_when>
    <thetext>Created attachment 166610
Patch v1 - Nothing but red (except for ChangeLogs)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732296</commentid>
    <comment_count>2</comment_count>
      <attachid>166610</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-01 23:04:13 -0700</bug_when>
    <thetext>Comment on attachment 166610
Patch v1 - Nothing but red (except for ChangeLogs)

Attachment 166610 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14131119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732306</commentid>
    <comment_count>3</comment_count>
      <attachid>166613</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-01 23:17:08 -0700</bug_when>
    <thetext>Created attachment 166613
Patch v2 - Now with more passing release builds!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732318</commentid>
    <comment_count>4</comment_count>
      <attachid>166613</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-10-01 23:29:46 -0700</bug_when>
    <thetext>Comment on attachment 166613
Patch v2 - Now with more passing release builds!

r=me but please wait til EWS is happy before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732355</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-10-02 00:05:34 -0700</bug_when>
    <thetext>EWS built fine, and test failures seem to be unrelated noise.

http://trac.webkit.org/changeset/130128</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166610</attachid>
            <date>2012-10-01 23:01:23 -0700</date>
            <delta_ts>2012-10-01 23:17:08 -0700</delta_ts>
            <desc>Patch v1 - Nothing but red (except for ChangeLogs)</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>31494</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDk0MjVlLi5jNDk3ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMTAtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB0aGUgU2FmYXJpIDIgLT4gU2FmYXJpIDMgaWNvbiBkYXRhYmFzZSBpbXBvcnQg
Y29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIG5vdGlvbnMgb2YgImltcG9ydGluZyBhbiBvbGQgZGF0YWJhc2UgZm9ybWF0IiBmcm9tIHRo
ZSBJY29uRGF0YWJhc2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gRmVhdHVyZSByZW1vdmVk
LCBhbmQgbm8gcHJldmlvdXMgdGVzdHMgY292ZXJlZCBpdC4KKworICAgICAgICAqIGxvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChEZWZhdWx0SWNvbkRhdGFiYXNlQ2xpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppY29uRGF0YWJh
c2VTeW5jVGhyZWFkKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAg
ICAgICAgKEljb25EYXRhYmFzZSk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
Q2xpZW50Lmg6CisKIDIwMTItMTAtMDEgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBmbGV4Ym94IGRvZXMgd3JvbmcgYmFzZWxpbmUgaXRlbSBhbGlnbm1lbnQgaW4g
Y29sdW1ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5k
ZXggZDcwZWNiNS4uOTRhNGI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2UuY3BwCkBAIC05Myw3ICs5Myw2IEBAIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2lu
Zyhjb25zdCBTdHJpbmcmIHVybCkKIGNsYXNzIERlZmF1bHRJY29uRGF0YWJhc2VDbGllbnQgOiBw
dWJsaWMgSWNvbkRhdGFiYXNlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9ydCgpIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJikgeyB9IAogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwo
Y29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYpIHsgfQpAQCAtODA1LDggKzgwNCw2IEBAIEljb25EYXRhYmFzZTo6
SWNvbkRhdGFiYXNlKCkKICAgICAsIG1fcmV0YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZChmYWxz
ZSkKICAgICAsIG1faW5pdGlhbFBydW5pbmdDb21wbGV0ZShmYWxzZSkKICAgICAsIG1fY2xpZW50
KGRlZmF1bHRDbGllbnQoKSkKLSAgICAsIG1faW1wb3J0ZWQoZmFsc2UpCi0gICAgLCBtX2lzSW1w
b3J0ZWRTZXQoZmFsc2UpCiB7CiAgICAgTE9HKEljb25EYXRhYmFzZSwgIkNyZWF0aW5nIEljb25E
YXRhYmFzZSAlcCIsIHRoaXMpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC05Njgs
MjcgKzk2NSw2IEBAIFBhZ2VVUkxSZWNvcmQqIEljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVQYWdl
VVJMUmVjb3JkKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIC8vICoqKiBTeW5jIFRocmVhZCBPbmx5
ICoqKgogLy8gKioqKioqKioqKioqKioqKioqKioqKioqCiAKLXZvaWQgSWNvbkRhdGFiYXNlOjpp
bXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTCkKLXsKLSAgICBBU1NFUlRfSUNPTl9TWU5DX1RIUkVBRCgpOwotICAgIAotICAg
IC8vIFRoaXMgZnVuY3Rpb24gaXMgb25seSBmb3Igc2V0dGluZyBhY3R1YWwgZXhpc3RpbmcgdXJs
IG1hcHBpbmdzIHNvIGFzc2VydCB0aGF0IG5laXRoZXIgb2YgdGhlc2UgVVJMcyBhcmUgZW1wdHkK
LSAgICBBU1NFUlQoIWljb25VUkwuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIXBhZ2VVUkwuaXNF
bXB0eSgpKTsKLSAgICBBU1NFUlQoZG9jdW1lbnRDYW5IYXZlSWNvbihwYWdlVVJMKSk7Ci0gICAg
Ci0gICAgc2V0SWNvblVSTEZvclBhZ2VVUkxJblNRTERhdGFiYXNlKGljb25VUkwsIHBhZ2VVUkwp
OyAgICAKLX0KLQotdm9pZCBJY29uRGF0YWJhc2U6OmltcG9ydEljb25EYXRhRm9ySWNvblVSTChQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgY29uc3QgU3RyaW5nJiBpY29uVVJMKQotewot
ICAgIEFTU0VSVF9JQ09OX1NZTkNfVEhSRUFEKCk7Ci0gICAgCi0gICAgQVNTRVJUKCFpY29uVVJM
LmlzRW1wdHkoKSk7Ci0KLSAgICB3cml0ZUljb25TbmFwc2hvdFRvU1FMRGF0YWJhc2UoSWNvblNu
YXBzaG90KGljb25VUkwsIChpbnQpY3VycmVudFRpbWUoKSwgZGF0YS5nZXQoKSkpOwotfQotCiBi
b29sIEljb25EYXRhYmFzZTo6c2hvdWxkU3RvcFRocmVhZEFjdGl2aXR5KCkgY29uc3QKIHsKICAg
ICBBU1NFUlRfSUNPTl9TWU5DX1RIUkVBRCgpOwpAQCAtMTA2MCwzMiArMTAzNiw2IEBAIHZvaWQg
SWNvbkRhdGFiYXNlOjppY29uRGF0YWJhc2VTeW5jVGhyZWFkKCkKICAgICBMT0coSWNvbkRhdGFi
YXNlLCAiKFRIUkVBRCkgcGVyZm9ybU9wZW5Jbml0aWFsaXphdGlvbigpIHRvb2sgJS40ZiBzZWNv
bmRzLCBub3cgJS40ZiBzZWNvbmRzIGZyb20gdGhyZWFkIHN0YXJ0IiwgbmV3U3RhbXAgLSB0aW1l
U3RhbXAsIG5ld1N0YW1wIC0gc3RhcnRUaW1lKTsKICAgICB0aW1lU3RhbXAgPSBuZXdTdGFtcDsK
ICNlbmRpZiAKLQotICAgIGlmICghaW1wb3J0ZWQoKSkgewotICAgICAgICBMT0coSWNvbkRhdGFi
YXNlLCAiKFRIUkVBRCkgUGVyZm9ybWluZyBTYWZhcmkyIGltcG9ydCBwcm9jZWR1cmUiKTsKLSAg
ICAgICAgU1FMaXRlVHJhbnNhY3Rpb24gaW1wb3J0VHJhbnNhY3Rpb24obV9zeW5jREIpOwotICAg
ICAgICBpbXBvcnRUcmFuc2FjdGlvbi5iZWdpbigpOwotICAgICAgICAKLSAgICAgICAgLy8gQ29t
bWl0IHRoZSB0cmFuc2FjdGlvbiBvbmx5IGlmIHRoZSBpbXBvcnQgY29tcGxldGVzICh0aGUgaW1w
b3J0IHNob3VsZCBiZSBhdG9taWMpCi0gICAgICAgIGlmIChtX2NsaWVudC0+cGVyZm9ybUltcG9y
dCgpKSB7Ci0gICAgICAgICAgICBzZXRJbXBvcnRlZCh0cnVlKTsKLSAgICAgICAgICAgIGltcG9y
dFRyYW5zYWN0aW9uLmNvbW1pdCgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9H
KEljb25EYXRhYmFzZSwgIihUSFJFQUQpIFNhZmFyaSAyIGltcG9ydCB3YXMgY2FuY2VsbGVkIik7
Ci0gICAgICAgICAgICBpbXBvcnRUcmFuc2FjdGlvbi5yb2xsYmFjaygpOwotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICBpZiAoc2hvdWxkU3RvcFRocmVhZEFjdGl2aXR5KCkpIHsKLSAgICAg
ICAgICAgIHN5bmNUaHJlYWRNYWluTG9vcCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgICAgICAKLSNpZiAhTE9HX0RJU0FCTEVECi0gICAgICAgIG5ld1N0YW1wID0g
Y3VycmVudFRpbWUoKTsKLSAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIihUSFJFQUQpIHBlcmZv
cm1JbXBvcnQoKSB0b29rICUuNGYgc2Vjb25kcywgbm93ICUuNGYgc2Vjb25kcyBmcm9tIHRocmVh
ZCBzdGFydCIsIG5ld1N0YW1wIC0gdGltZVN0YW1wLCBuZXdTdGFtcCAtIHN0YXJ0VGltZSk7Ci0g
ICAgICAgIHRpbWVTdGFtcCA9IG5ld1N0YW1wOwotI2VuZGlmIAotICAgIH0KICAgICAgICAgCiAg
ICAgLy8gVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBzaW11bGF0ZSBhIGxvbmcgbGFz
dGluZyBVUkwgaW1wb3J0ICgqSFVHRSogaWNvbiBkYXRhYmFzZXMsIG9yIG5ldHdvcmsgaG9tZSBk
aXJlY3RvcmllcykKICAgICAvLyB3aGlsZSAoY3VycmVudFRpbWUoKSAtIHRpbWVTdGFtcCA8IDEw
KTsKQEAgLTE5MTQsNTQgKzE4NjQsNiBAQCB2b2lkKiBJY29uRGF0YWJhc2U6OmNsZWFudXBTeW5j
VGhyZWFkKCkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBJY29uRGF0YWJhc2U6OmltcG9ydGVk
KCkKLXsKLSAgICBBU1NFUlRfSUNPTl9TWU5DX1RIUkVBRCgpOwotICAgIAotICAgIGlmIChtX2lz
SW1wb3J0ZWRTZXQpCi0gICAgICAgIHJldHVybiBtX2ltcG9ydGVkOwotICAgICAgICAKLSAgICBT
UUxpdGVTdGF0ZW1lbnQgcXVlcnkobV9zeW5jREIsICJTRUxFQ1QgSWNvbkRhdGFiYXNlSW5mby52
YWx1ZSBGUk9NIEljb25EYXRhYmFzZUluZm8gV0hFUkUgSWNvbkRhdGFiYXNlSW5mby5rZXkgPSBc
IkltcG9ydGVkU2FmYXJpMkljb25zXCI7Iik7Ci0gICAgaWYgKHF1ZXJ5LnByZXBhcmUoKSAhPSBT
UUxSZXN1bHRPaykgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBwcmVwYXJlIGltcG9y
dGVkIHN0YXRlbWVudCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAg
IGludCByZXN1bHQgPSBxdWVyeS5zdGVwKCk7Ci0gICAgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRS
b3cpCi0gICAgICAgIHJlc3VsdCA9IHF1ZXJ5LmdldENvbHVtbkludCgwKTsKLSAgICBlbHNlIHsK
LSAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHREb25lKQotICAgICAgICAgICAgTE9HX0VS
Uk9SKCJpbXBvcnRlZCBzdGF0ZW1lbnQgZmFpbGVkIik7Ci0gICAgICAgIHJlc3VsdCA9IDA7Ci0g
ICAgfQotICAgIAotICAgIG1faXNJbXBvcnRlZFNldCA9IHRydWU7Ci0gICAgcmV0dXJuIG1faW1w
b3J0ZWQgPSByZXN1bHQ7Ci19Ci0KLXZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJbXBvcnRlZChib29s
IGltcG9ydCkKLXsKLSAgICBBU1NFUlRfSUNPTl9TWU5DX1RIUkVBRCgpOwotCi0gICAgbV9pbXBv
cnRlZCA9IGltcG9ydDsKLSAgICBtX2lzSW1wb3J0ZWRTZXQgPSB0cnVlOwotICAgIAotICAgIFN0
cmluZyBxdWVyeVN0cmluZyA9IGltcG9ydCA/Ci0gICAgICAgICJJTlNFUlQgSU5UTyBJY29uRGF0
YWJhc2VJbmZvIChrZXksIHZhbHVlKSBWQUxVRVMgKFwiSW1wb3J0ZWRTYWZhcmkySWNvbnNcIiwg
MSk7IiA6Ci0gICAgICAgICJJTlNFUlQgSU5UTyBJY29uRGF0YWJhc2VJbmZvIChrZXksIHZhbHVl
KSBWQUxVRVMgKFwiSW1wb3J0ZWRTYWZhcmkySWNvbnNcIiwgMCk7IjsKLSAgICAgICAgCi0gICAg
U1FMaXRlU3RhdGVtZW50IHF1ZXJ5KG1fc3luY0RCLCBxdWVyeVN0cmluZyk7Ci0gICAgCi0gICAg
aWYgKHF1ZXJ5LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykgewotICAgICAgICBMT0dfRVJST1Io
IlVuYWJsZSB0byBwcmVwYXJlIHNldCBpbXBvcnRlZCBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0gICAgCi0gICAgCi0gICAgaWYgKHF1ZXJ5LnN0ZXAoKSAhPSBTUUxSZXN1bHRE
b25lKQotICAgICAgICBMT0dfRVJST1IoInNldCBpbXBvcnRlZCBzdGF0ZW1lbnQgZmFpbGVkIik7
Ci19Ci0KIC8vIHJlYWR5U1FMaXRlU3RhdGVtZW50KCkgaGFuZGxlcyB0d28gdGhpbmdzCiAvLyAx
IC0gSWYgdGhlIFNRTERhdGFiYXNlJiBhcmd1bWVudCBpcyBkaWZmZXJlbnQsIHRoZSBzdGF0ZW1l
bnQgbXVzdCBiZSBkZXN0cm95ZWQgYW5kIHJlbWFkZS4gIFRoaXMgaGFwcGVucyB3aGVuIHRoZSB1
c2VyCiAvLyAgICAgc3dpdGNoZXMgdG8gYW5kIGZyb20gcHJpdmF0ZSBicm93c2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAppbmRleCBkZjQ0MGI3Li4wYTcyNDIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaApAQCAtMTkyLDEw
ICsxOTIsNiBAQCBwcml2YXRlOgogCiAvLyAqKiogU3luYyBUaHJlYWQgT25seSAqKioKIHB1Ymxp
YzoKLSAgICAvLyBTaG91bGQgYmUgdXNlZCBvbmx5IG9uIHRoZSBzeW5jIHRocmVhZCBhbmQgb25s
eSBieSB0aGUgU2FmYXJpIDIgSWNvbnMgaW1wb3J0IHByb2NlZHVyZQotICAgIHZpcnR1YWwgdm9p
ZCBpbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgcGFnZVVSTCk7Ci0gICAgdmlydHVhbCB2b2lkIGltcG9ydEljb25EYXRhRm9ySWNvblVS
TChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgY29uc3QgU3RyaW5nJiBpY29uVVJMKTsK
LSAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcFRocmVhZEFjdGl2aXR5KCkgY29uc3Q7
CiAKIHByaXZhdGU6ICAgIApAQCAtMjE3LDEwICsyMTMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQq
IGNsZWFudXBTeW5jVGhyZWFkKCk7CiAgICAgdm9pZCBwZXJmb3JtUmV0YWluSWNvbkZvclBhZ2VV
UkwoY29uc3QgU3RyaW5nJiwgaW50IHJldGFpbkNvdW50KTsKICAgICB2b2lkIHBlcmZvcm1SZWxl
YXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgaW50IHJlbGVhc2VDb3VudCk7Ci0KLSAg
ICAvLyBSZWNvcmQgKG9uIGRpc2spIHdoZXRoZXIgb3Igbm90IFNhZmFyaSAyLXN0eWxlIGljb25z
IHdlcmUgaW1wb3J0ZWQgKG9uY2UgcGVyIGRhdGFhYnNlKQotICAgIGJvb2wgaW1wb3J0ZWQoKTsK
LSAgICB2b2lkIHNldEltcG9ydGVkKGJvb2wpOwogICAgIAogICAgIGJvb2wgd2FzRXhjbHVkZWRG
cm9tQmFja3VwKCk7CiAgICAgdm9pZCBzZXRXYXNFeGNsdWRlZEZyb21CYWNrdXAoKTsKQEAgLTI0
OSwxMCArMjQxLDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBTUUxpdGVEYXRhYmFzZSBtX3N5bmNE
QjsKICAgICAKLSAgICAvLyBUcmFjayB3aGV0aGVyIHRoZSAiU2FmYXJpIDIiIGltcG9ydCBpcyBj
b21wbGV0ZSBhbmQvb3Igc2V0IGluIHRoZSBkYXRhYmFzZQotICAgIGJvb2wgbV9pbXBvcnRlZDsK
LSAgICBib29sIG1faXNJbXBvcnRlZFNldDsKLSAgICAKICAgICBPd25QdHI8U1FMaXRlU3RhdGVt
ZW50PiBtX3NldEljb25JREZvclBhZ2VVUkxTdGF0ZW1lbnQ7CiAgICAgT3duUHRyPFNRTGl0ZVN0
YXRlbWVudD4gbV9yZW1vdmVQYWdlVVJMU3RhdGVtZW50OwogICAgIE93blB0cjxTUUxpdGVTdGF0
ZW1lbnQ+IG1fZ2V0SWNvbklERm9ySWNvblVSTFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQ2xpZW50LmgKaW5kZXggM2Q1ZjM0OS4uNzA0OTRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQ2xpZW50
LmgKQEAgLTM3LDcgKzM3LDYgQEAgY2xhc3MgSWNvbkRhdGFiYXNlQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5JY29uRGF0YWJhc2VDbGllbnQoKSB7IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBwZXJmb3JtSW1wb3J0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJM
Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEltcG9y
dEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IGVlMTFkNWEuLmZjNzc0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTAxICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIFNhZmFyaSAyIC0+IFNh
ZmFyaSAzIGljb24gZGF0YWJhc2UgaW1wb3J0IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE51a2UgdGhlIHBlcmZvcm1JbXBvcnQoKSBJY29uRGF0
YWJhc2VDbGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFi
YXNlQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNvbkRh
dGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoSWNvbkRhdGFiYXNlQ2xpZW50Qmxh
Y2tCZXJyeSk6CisKIDIwMTItMTAtMDEgIE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gUmVtb3ZlIHN1cHByZXNzaW5nIG9mIFZLQiBoaWRpbmcg
d2hlbiBwcm9jZXNzaW5nIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggNDcyODE0Ni4uZGE5NWNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9J
Y29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNTcsMTEgKzU3LDYgQEAgYm9vbCBJ
Y29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5Ojppbml0SWNvbkRhdGFiYXNlKGNvbnN0IEJsYWNr
QmVycnk6OldlYktpdDo6V2UKICAgICByZXR1cm4gbV9pbml0U3RhdGUgPT0gSW5pdGlhbGl6ZVN1
Y2NlZWRlZDsKIH0KIAotYm9vbCBJY29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5OjpwZXJmb3Jt
SW1wb3J0KCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBJY29uRGF0YWJhc2VDbGll
bnRCbGFja0JlcnJ5OjpkaWRSZW1vdmVBbGxJY29ucygpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50Qmxh
Y2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ljb25E
YXRhYmFzZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCBjNzJhNDUwLi5kYzZkMDJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNl
Q2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAg
cHVibGljOgogICAgIHN0YXRpYyBJY29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5KiBnZXRJbnN0
YW5jZSgpOwogICAgIGJvb2wgaW5pdEljb25EYXRhYmFzZShjb25zdCBCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlNldHRpbmdzKik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9ydCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJY29ucygpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IDQxNjM3NzMuLmUwYWNmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0xMC0wMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBTYWZhcmkgMiAtPiBTYWZhcmkgMyBpY29uIGRhdGFiYXNlIGltcG9y
dCBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTgxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
dWtlIHRoZSBwZXJmb3JtSW1wb3J0KCkgSWNvbkRhdGFiYXNlQ2xpZW50IG1ldGhvZC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEVmbC5jcHA6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmg6CisKIDIwMTItMDktMjgg
IE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAg
ICAgICAgQ29kZSBpbnNpZGUgRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZSgpIGlt
cGxlbWVudGF0aW9ucyBjYW4gYmUgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBXSyBwb3J0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xp
ZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFz
ZUNsaWVudEVmbC5jcHAKaW5kZXggYzllNDMyOC4uNGUzNTEzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRFZmwu
Y3BwCkBAIC0yNSwxMiArMjUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSWNv
bkRhdGFiYXNlQ2xpZW50RWZsOjpwZXJmb3JtSW1wb3J0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEljb25EYXRhYmFzZUNsaWVudEVmbDo6
ZGlkUmVtb3ZlQWxsSWNvbnMoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEVm
bC5oCmluZGV4IDUxNTc2MTQuLmMxNGNkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEVmbC5oCkBAIC0yOCw3ICsy
OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSWNvbkRhdGFiYXNlQ2xpZW50RWZs
IDogcHVibGljIEljb25EYXRhYmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29s
IHBlcmZvcm1JbXBvcnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQWxsSWNvbnMoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2ZWE1NGEwLi5mZjNiNzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgU2FmYXJpIDIgLT4gU2FmYXJpIDMg
aWNvbiBkYXRhYmFzZSBpbXBvcnQgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk4MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTnVrZSB0aGUgcGVyZm9ybUltcG9ydCgpIEljb25EYXRhYmFzZUNs
aWVudCBtZXRob2QuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKEljb25EYXRhYmFzZUNsaWVudEd0ayk6CisKIDIwMTItMTAtMDEgIEFybmF1
ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbR3Rr
XSBjcmFzaCB3aGVuIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW9uIGlzIHR1cm5lZCBvZmYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKaW5k
ZXggNmJhYmZlNC4uYzYyYWIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKQEAgLTgwLDcgKzgwLDYgQEAgc3RhdGljIHZvaWQg
d2Via2l0RmF2aWNvbkRhdGFiYXNlQ2xvc2UoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFz
ZSk7CiBjbGFzcyBJY29uRGF0YWJhc2VDbGllbnRHdGsgOiBwdWJsaWMgSWNvbkRhdGFiYXNlQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICAvLyBJY29uRGF0YWJhc2VDbGllbnQgaW50ZXJmYWNlCi0gICAg
dmlydHVhbCBib29sIHBlcmZvcm1JbXBvcnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCkgeyB9OwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYW4g
aWNvbiBpcyByZXF1ZXN0ZWQgd2hpbGUgdGhlIGluaXRpYWwgaW1wb3J0IGlzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggNjZlMjljOS4uNWZmNDA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTEwLTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgdGhlIFNhZmFyaSAyIC0+IFNhZmFyaSAzIGljb24gZGF0YWJhc2UgaW1wb3J0
IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE51
a2UgdGhlIHBlcmZvcm1JbXBvcnQoKSBJY29uRGF0YWJhc2VDbGllbnQgbWV0aG9kLCBhcyB3ZWxs
IGFzIHRoZSBzdXBwb3J0aW5nIG1ldGhvZHMuCisKKyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRh
YmFzZS5tbToKKyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRhYmFzZUludGVybmFsLmg6CisgICAg
ICAgICogTWlzYy9XZWJJY29uRGF0YWJhc2VQcml2YXRlLmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViSWNvbkRhdGFiYXNlQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViSWNvbkRhdGFiYXNlQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYktpdC5leHA6CisKIDIwMTIt
MDktMjggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgc3VwcG9ydCBmb3IgbWV0aG9kIG92ZXJsb2FkaW5nIGZyb20gYnJpZGdlIGNvZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KaW5kZXggZmVlMzBmNy4uYmJm
NmVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2Uu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTU2
LDcgKzU2LDYgQEAgTlNTdHJpbmcgKldlYkljb25Ob3RpZmljYXRpb25Vc2VySW5mb1VSTEtleSA9
ICAgICAgICAgICAgICBAIldlYkljb25Ob3RpZmljYXRpb24KIE5TU3RyaW5nICpXZWJJY29uRGF0
YWJhc2VEaWRSZW1vdmVBbGxJY29uc05vdGlmaWNhdGlvbiA9ICAgQCJXZWJJY29uRGF0YWJhc2VE
aWRSZW1vdmVBbGxJY29uc05vdGlmaWNhdGlvbiI7CiAKIE5TU3RyaW5nICpXZWJJY29uRGF0YWJh
c2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVs
dHNLZXkiOwotTlNTdHJpbmcgKldlYkljb25EYXRhYmFzZUltcG9ydERpcmVjdG9yeURlZmF1bHRz
S2V5ID0gQCJXZWJJY29uRGF0YWJhc2VJbXBvcnREaXJlY3RvcnlEZWZhdWx0c0tleSI7CiBOU1N0
cmluZyAqV2ViSWNvbkRhdGFiYXNlRW5hYmxlZERlZmF1bHRzS2V5ID0gICBAIldlYkljb25EYXRh
YmFzZUVuYWJsZWQiOwogCiBOU1N0cmluZyAqV2ViSWNvbkRhdGFiYXNlUGF0aCA9IEAifi9MaWJy
YXJ5L0ljb25zIjsKQEAgLTQ1NCw5NiArNDUzLDYgQEAgLSAodm9pZClfc2NhbGVJY29uOihOU0lt
YWdlICopaWNvbiB0b1NpemU6KE5TU2l6ZSlzaXplCiAjZW5kaWYKIH0KIAotLy8gVGhpcyBoYXNo
aW5nIFN0cmluZy0+ZmlsZW5hbWUgYWxnb3JpdGhtIGNhbWUgZnJvbSBXZWJGaWxlRGF0YWJhc2Uu
bSBhbmQgaXMgd2hhdCB3YXMgdXNlZCBpbiB0aGUgCi0vLyBXZWJLaXQgSWNvbiBEYXRhYmFzZQot
c3RhdGljIHZvaWQgbGVnYWN5SWNvbkRhdGFiYXNlRmlsZVBhdGhGb3JLZXkoaWQga2V5LCBjaGFy
ICpidWZmZXIpCi17Ci0gICAgY29uc3QgY2hhciAqczsKLSAgICBVSW50MzIgaGFzaDE7Ci0gICAg
VUludDMyIGhhc2gyOwotICAgIENGSW5kZXggbGVuOwotICAgIENGSW5kZXggY250OwotICAgIAot
ICAgIHMgPSBbW1tba2V5IGRlc2NyaXB0aW9uXSBsb3dlcmNhc2VTdHJpbmddIHN0cmluZ0J5U3Rh
bmRhcmRpemluZ1BhdGhdIFVURjhTdHJpbmddOwotICAgIGxlbiA9IHN0cmxlbihzKTsKLQotICAg
IC8vIGNvbXB1dGUgZmlyc3QgaGFzaCAgICAKLSAgICBoYXNoMSA9IGxlbjsKLSAgICBmb3IgKGNu
dCA9IDA7IGNudCA8IGxlbjsgY250KyspIHsKLSAgICAgICAgaGFzaDEgKz0gKGhhc2gxIDw8IDgp
ICsgc1tjbnRdOwotICAgIH0KLSAgICBoYXNoMSArPSAoaGFzaDEgPDwgKGxlbiAmIDMxKSk7Ci0K
LSAgICAvLyBjb21wdXRlIHNlY29uZCBoYXNoICAgIAotICAgIGhhc2gyID0gbGVuOwotICAgIGZv
ciAoY250ID0gMDsgY250IDwgbGVuOyBjbnQrKykgewotICAgICAgICBoYXNoMiA9ICgzNyAqIGhh
c2gyKSBeIHNbY250XTsKLSAgICB9Ci0KLSNpZmRlZiBfX0xQNjRfXwotICAgIHNucHJpbnRmKGJ1
ZmZlciwgVW5pcXVlRmlsZVBhdGhTaXplLCAiJS4ydS8lLjJ1LyUuMTB1LSUuMTB1LmNhY2hlIiwg
KChoYXNoMSAmIDB4ZmYpID4+IDQpLCAoKGhhc2gyICYgMHhmZikgPj4gNCksIGhhc2gxLCBoYXNo
Mik7Ci0jZWxzZQotICAgIHNucHJpbnRmKGJ1ZmZlciwgVW5pcXVlRmlsZVBhdGhTaXplLCAiJS4y
bHUvJS4ybHUvJS4xMGx1LSUuMTBsdS5jYWNoZSIsICgoaGFzaDEgJiAweGZmKSA+PiA0KSwgKCho
YXNoMiAmIDB4ZmYpID4+IDQpLCBoYXNoMSwgaGFzaDIpOwotI2VuZGlmCi19Ci0KLS8vIFRoaXMg
bWV0aG9kIG9mIGdldHRpbmcgYW4gb2JqZWN0IGZyb20gdGhlIGZpbGVzeXN0ZW0gaXMgdGFrZW4g
ZnJvbSB0aGUgb2xkIAotLy8gV2ViS2l0IEljb24gRGF0YWJhc2UKLXN0YXRpYyBpZCBvYmplY3RG
cm9tUGF0aEZvcktleShOU1N0cmluZyAqZGF0YWJhc2VQYXRoLCBpZCBrZXkpCi17Ci0gICAgQVNT
RVJUKGtleSk7Ci0gICAgaWQgcmVzdWx0ID0gbmlsOwotCi0gICAgLy8gVXNlIHRoZSBrZXktPmZp
bGVuYW1lIGhhc2hpbmcgdGhlIG9sZCBXZWJLaXQgSWNvbkRhdGFiYXNlIHVzZWQKLSAgICBjaGFy
IHVuaXF1ZUtleVtVbmlxdWVGaWxlUGF0aFNpemVdOyAgICAKLSAgICBsZWdhY3lJY29uRGF0YWJh
c2VGaWxlUGF0aEZvcktleShrZXksIHVuaXF1ZUtleSk7Ci0gICAgCi0gICAgLy8gR2V0IHRoZSBk
YXRhIGZyb20gdGhpcyBmaWxlIGFuZCBzZXR1cCBmb3IgdGhlIHVuLWFyY2hpdmluZwotICAgIE5T
U3RyaW5nICpmaWxlUGF0aCA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUAv
JXMiLCBkYXRhYmFzZVBhdGgsIHVuaXF1ZUtleV07Ci0gICAgTlNEYXRhICpkYXRhID0gW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQ29udGVudHNPZkZpbGU6ZmlsZVBhdGhdOwotICAgIE5TVW5hcmNo
aXZlciAqdW5hcmNoaXZlciA9IG5pbDsKLSAgICAKLSAgICBAdHJ5IHsKLSAgICAgICAgaWYgKGRh
dGEpIHsKLSAgICAgICAgICAgIHVuYXJjaGl2ZXIgPSBbW05TVW5hcmNoaXZlciBhbGxvY10gaW5p
dEZvclJlYWRpbmdXaXRoRGF0YTpkYXRhXTsKLSAgICAgICAgICAgIGlmICh1bmFyY2hpdmVyKSB7
Ci0gICAgICAgICAgICAgICAgaWQgZmlsZUtleSA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdF07
Ci0gICAgICAgICAgICAgICAgaWYgKFtmaWxlS2V5IGlzRXF1YWw6a2V5XSkgewotICAgICAgICAg
ICAgICAgICAgICBpZCBvYmplY3QgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RdOwotICAgICAg
ICAgICAgICAgICAgICBpZiAob2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBE
ZWNvZGVkIG9iamVjdHMgZ28gYXdheSB3aGVuIHRoZSB1bmFyY2hpdmVyIGRvZXMsIHNvIHdlIG5l
ZWQgdG8KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldGFpbiB0aGlzIHNvIHdlIGNhbiBy
ZXR1cm4gaXQgdG8gb3VyIGNhbGxlci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
IFtbb2JqZWN0IHJldGFpbl0gYXV0b3JlbGVhc2VdOwotICAgICAgICAgICAgICAgICAgICAgICAg
TE9HKEljb25EYXRhYmFzZSwgInJlYWQgZGlzayBjYWNoZSBmaWxlIC0gJUAiLCBrZXkpOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpsb2NhbEV4Y2VwdGlvbikgewotICAg
ICAgICBMT0coSWNvbkRhdGFiYXNlLCAiY2Fubm90IHVuYXJjaGl2ZSBjYWNoZSBmaWxlIC0gJUAi
LCBrZXkpOwotICAgICAgICByZXN1bHQgPSBuaWw7Ci0gICAgfQotCi0gICAgW3VuYXJjaGl2ZXIg
cmVsZWFzZV07Ci0gICAgW2RhdGEgcmVsZWFzZV07Ci0gICAgW2ZpbGVQYXRoIHJlbGVhc2VdOwot
ICAgIAotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBOU0RhdGEqIGljb25EYXRhRnJv
bVBhdGhGb3JJY29uVVJMKE5TU3RyaW5nICpkYXRhYmFzZVBhdGgsIE5TU3RyaW5nICppY29uVVJM
U3RyaW5nKQotewotICAgIEFTU0VSVChpY29uVVJMU3RyaW5nKTsKLSAgICBBU1NFUlQoZGF0YWJh
c2VQYXRoKTsKLSAgICAKLSAgICBOU0RhdGEgKmljb25EYXRhID0gb2JqZWN0RnJvbVBhdGhGb3JL
ZXkoZGF0YWJhc2VQYXRoLCBpY29uVVJMU3RyaW5nKTsKLSAgICAKLSAgICBpZiAoKGlkKWljb25E
YXRhID09IChpZClbTlNOdWxsIG51bGxdKSAKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAg
Ci0gICAgcmV0dXJuIGljb25EYXRhOwotfQotCiAtIChOU1N0cmluZyAqKV9kYXRhYmFzZURpcmVj
dG9yeQogewogICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c107CkBAIC01NjMsMTI0ICs0NzIsNiBAQCBAZW5kCiBAaW1wbGVt
ZW50YXRpb24gV2ViSWNvbkRhdGFiYXNlUHJpdmF0ZQogQGVuZAogCi1AaW50ZXJmYWNlIFdlYkNv
Y29hVGhyZWFkaW5nRW5hYmxlciA6IE5TT2JqZWN0IHsKLX0KLSsgKHZvaWQpZW5hYmxlVGhyZWFk
aW5nOwotCi0tICh2b2lkKXRocmVhZEVuYWJsaW5nU2VsZWN0b3I6KGlkKWFyZzsKLUBlbmQKLQot
QGltcGxlbWVudGF0aW9uIFdlYkNvY29hVGhyZWFkaW5nRW5hYmxlcgotCi0tICh2b2lkKXRocmVh
ZEVuYWJsaW5nU2VsZWN0b3I6KGlkKWFyZwotewotICAgIHJldHVybjsKLX0KLQotKyAodm9pZCll
bmFibGVUaHJlYWRpbmcKLXsKLSAgICBXZWJDb2NvYVRocmVhZGluZ0VuYWJsZXIgKmVuYWJsZXIg
PSBbW1dlYkNvY29hVGhyZWFkaW5nRW5hYmxlciBhbGxvY10gaW5pdF07Ci0gICAgW05TVGhyZWFk
IGRldGFjaE5ld1RocmVhZFNlbGVjdG9yOkBzZWxlY3Rvcih0aHJlYWRFbmFibGluZ1NlbGVjdG9y
OikgdG9UYXJnZXQ6ZW5hYmxlciB3aXRoT2JqZWN0Om5pbF07Ci0gICAgW2VuYWJsZXIgcmVsZWFz
ZV07Ci19Ci0KLUBlbmQKLQotYm9vbCBpbXBvcnRUb1dlYkNvcmVGb3JtYXQoKQotewotICAgIC8v
IFNpbmNlIHRoaXMgaXMgcnVubmluZyBvbiBhIHNlY29uZGFyeSBQT1NJWCB0aHJlYWQgYW5kIENv
Y29hIGNhbm5vdCBiZSB1c2VkIG11bHRpdGhyZWFkZWQgdW5sZXNzIGFuIE5TVGhyZWFkIGhhcyBi
ZWVuIGRldGFjaGVkLAotICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGhhcHBlbnMgaGVyZSBmb3IgYWxs
IFdlYktpdCBjbGllbnRzCi0gICAgaWYgKCFbTlNUaHJlYWQgaXNNdWx0aVRocmVhZGVkXSkKLSAg
ICAgICAgW1dlYkNvY29hVGhyZWFkaW5nRW5hYmxlciBlbmFibGVUaHJlYWRpbmddOwotICAgIEFT
U0VSVChbTlNUaHJlYWQgaXNNdWx0aVRocmVhZGVkXSk7ICAgIAotICAgIAotICAgIC8vIEdldCB0
aGUgZGlyZWN0b3J5IHRoZSBvbGQgaWNvbiBkYXRhYmFzZSAqc2hvdWxkKiBiZSBpbgotICAgIE5T
VXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c107Ci0gICAgTlNTdHJpbmcgKmRhdGFiYXNlRGlyZWN0b3J5ID0gW2RlZmF1bHRzIG9iamVj
dEZvcktleTpXZWJJY29uRGF0YWJhc2VJbXBvcnREaXJlY3RvcnlEZWZhdWx0c0tleV07Ci0gICAg
Ci0gICAgaWYgKCFkYXRhYmFzZURpcmVjdG9yeSkKLSAgICAgICAgZGF0YWJhc2VEaXJlY3Rvcnkg
PSBbZGVmYXVsdHMgb2JqZWN0Rm9yS2V5OldlYkljb25EYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5XTsKLSAgICAgICAgCi0gICAgaWYgKCFkYXRhYmFzZURpcmVjdG9yeSkgewotICAgICAgICBk
YXRhYmFzZURpcmVjdG9yeSA9IFdlYkljb25EYXRhYmFzZVBhdGg7Ci0gICAgICAgIFtkZWZhdWx0
cyBzZXRPYmplY3Q6ZGF0YWJhc2VEaXJlY3RvcnkgZm9yS2V5OldlYkljb25EYXRhYmFzZURpcmVj
dG9yeURlZmF1bHRzS2V5XTsKLSAgICB9Ci0gICAgZGF0YWJhc2VEaXJlY3RvcnkgPSBbZGF0YWJh
c2VEaXJlY3Rvcnkgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF07Ci0KLSAgICAvLyBXaXRo
IHRoaXMgZGlyZWN0b3J5LCBnZXQgdGhlIFBhZ2VVUkxUb0ljb25VUkwgbWFwIHRoYXQgd2FzIHNh
dmVkIHRvIGRpc2sKLSAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpwYWdlVVJMVG9JY29uVVJMID0g
b2JqZWN0RnJvbVBhdGhGb3JLZXkoZGF0YWJhc2VEaXJlY3RvcnksIFdlYlVSTFRvSWNvblVSTEtl
eSk7Ci0KLSAgICAvLyBJZiB0aGUgcmV0cmlldmVkIG9iamVjdCB3YXMgbm90IGEgdmFsaWQgTlNN
dXRhYmxlRGljdGlvbmFyeSwgdGhlbiB3ZSBoYXZlIG5vIHZhbGlkCi0gICAgLy8gaWNvbnMgdG8g
aW1wb3J0Ci0gICAgaWYgKCFbcGFnZVVSTFRvSWNvblVSTCBpc0tpbmRPZkNsYXNzOltOU011dGFi
bGVEaWN0aW9uYXJ5IGNsYXNzXV0pCi0gICAgICAgIHBhZ2VVUkxUb0ljb25VUkwgPSBuaWw7Ci0g
ICAgCi0gICAgaWYgKCFwYWdlVVJMVG9JY29uVVJMKSB7Ci0gICAgICAgIC8vIFdlIGZvdW5kIG5v
IFNhZmFyaS0yLXN0eWxlIGljb24gZGF0YWJhc2UuIEJhaWwgb3V0IGltbWVkaWF0ZWx5IGFuZCBk
byBub3QgZGVsZXRlIGV2ZXJ5dGhpbmcKLSAgICAgICAgLy8gaW4gd2hhdGV2ZXIgZGlyZWN0b3J5
IHdlIGVuZGVkIHVwIGxvb2tpbmcgaW4hIFJldHVybiB0cnVlIHNvIHdlIHdvbid0IGJvdGhlciB0
byBjaGVjayBhZ2Fpbi4KLSAgICAgICAgLy8gRklYTUU6IFdlIGNhbiBwcm9iYWJseSBkZWxldGUg
YWxsIG9mIHRoZSBjb2RlIHRvIGNvbnZlcnQgU2FmYXJpLTItc3R5bGUgaWNvbiBkYXRhYmFzZXMg
bm93LgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgTlNFbnVtZXJhdG9y
ICplbnVtZXJhdG9yID0gW3BhZ2VVUkxUb0ljb25VUkwga2V5RW51bWVyYXRvcl07Ci0gICAgTlNT
dHJpbmcgKnVybCwgKmljb25VUkw7Ci0gICAgCi0gICAgLy8gRmlyc3QsIHdlJ2xsIGl0ZXJhdGUg
dGhyb3VnaCB0aGUgUGFnZVVSTC0+SWNvblVSTCBtYXAKLSAgICB3aGlsZSAoKHVybCA9IFtlbnVt
ZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAgaWNvblVSTCA9IFtwYWdlVVJM
VG9JY29uVVJMIG9iamVjdEZvcktleTp1cmxdOwotICAgICAgICBpZiAoIWljb25VUkwpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWNvbkRhdGFiYXNlKCkuaW1wb3J0SWNvblVSTEZv
clBhZ2VVUkwoaWNvblVSTCwgdXJsKTsKLSAgICAgICAgaWYgKGljb25EYXRhYmFzZSgpLnNob3Vs
ZFN0b3BUaHJlYWRBY3Rpdml0eSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
ICAgCi0KLSAgICAvLyBTZWNvbmQsIHdlJ2xsIGdldCBhIGxpc3Qgb2YgdGhlIHVuaXF1ZSBJY29u
VVJMcyB3ZSBoYXZlCi0gICAgTlNNdXRhYmxlU2V0ICppY29uc09uRGlza1dpdGhVUkxzID0gW05T
TXV0YWJsZVNldCBzZXRXaXRoQXJyYXk6W3BhZ2VVUkxUb0ljb25VUkwgYWxsVmFsdWVzXV07Ci0g
ICAgZW51bWVyYXRvciA9IFtpY29uc09uRGlza1dpdGhVUkxzIG9iamVjdEVudW1lcmF0b3JdOwot
ICAgIE5TRGF0YSAqaWNvbkRhdGE7Ci0gICAgCi0gICAgLy8gQW5kIGl0ZXJhdGUgdGhyb3VnaCB0
aGVtLCBhZGRpbmcgdGhlIGljb24gZGF0YSB0byB0aGUgbmV3IGljb24gZGF0YWJhc2UKLSAgICB3
aGlsZSAoKHVybCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAg
aWNvbkRhdGEgPSBpY29uRGF0YUZyb21QYXRoRm9ySWNvblVSTChkYXRhYmFzZURpcmVjdG9yeSwg
dXJsKTsKLSAgICAgICAgaWYgKGljb25EYXRhKQotICAgICAgICAgICAgaWNvbkRhdGFiYXNlKCku
aW1wb3J0SWNvbkRhdGFGb3JJY29uVVJMKFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShpY29uRGF0
YSksIHVybCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8gVGhpcyByZWFsbHkgKnNo
b3VsZG4ndCogaGFwcGVuLCBzbyBpdCdkIGJlIGdvb2QgdG8gdHJhY2sgZG93biB3aHkgaXQgbWln
aHQgaGFwcGVuIGluIGEgZGVidWcgYnVpbGQKLSAgICAgICAgICAgIC8vIGhvd2V2ZXIsIHdlIGRv
IGtub3cgaG93IHRvIGhhbmRsZSBpdCBncmFjZWZ1bGx5IGluIHJlbGVhc2UKLSAgICAgICAgICAg
IExPR19FUlJPUigiJUAgaXMgbWFya2VkIGFzIGhhdmluZyBhbiBpY29uIG9uIGRpc2ssIGJ1dCB3
ZSBjb3VsZG4ndCBnZXQgdGhlIGRhdGEgZm9yIGl0IiwgdXJsKTsKLSAgICAgICAgICAgIGljb25E
YXRhYmFzZSgpLmltcG9ydEljb25EYXRhRm9ySWNvblVSTCgwLCB1cmwpOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChpY29uRGF0YWJhc2UoKS5zaG91bGRTdG9wVGhyZWFkQWN0aXZpdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgLy8gQWZ0ZXIgd2UncmUg
ZG9uZSBpbXBvcnRpbmcgb2xkIHN0eWxlIGljb25zIG92ZXIgdG8gd2ViY29yZSBpY29ucywgd2Ug
ZGVsZXRlIHRoZSBlbnRpcmUgZGlyZWN0b3J5IGhpZXJhcmNoeSAKLSAgICAvLyBmb3IgdGhlIG9s
ZCBpY29uIERCIChza2lwcGluZyB0aGUgbmV3IGljb25EQiBpZiBpdCBpcyBpbiB0aGUgc2FtZSBk
aXJlY3RvcnkpCi0gICAgTlNGaWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl07Ci0gICAgZW51bWVyYXRvciA9IFtbZmlsZU1hbmFnZXIgY29udGVu
dHNPZkRpcmVjdG9yeUF0UGF0aDpkYXRhYmFzZURpcmVjdG9yeSBlcnJvcjpOVUxMXSBvYmplY3RF
bnVtZXJhdG9yXTsKLQotICAgIE5TU3RyaW5nICpkYXRhYmFzZUZpbGVuYW1lID0gSWNvbkRhdGFi
YXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpOwotCi0gICAgQk9PTCBmb3VuZEljb25EQiA9
IE5POwotICAgIE5TU3RyaW5nICpmaWxlOwotICAgIHdoaWxlICgoZmlsZSA9IFtlbnVtZXJhdG9y
IG5leHRPYmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAgaWYgKFtmaWxlIGNhc2VJbnNlbnNpdGl2
ZUNvbXBhcmU6ZGF0YWJhc2VGaWxlbmFtZV0gPT0gTlNPcmRlcmVkU2FtZSkgewotICAgICAgICAg
ICAgZm91bmRJY29uREIgPSBZRVM7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQot
ICAgICAgICBOU1N0cmluZyAqZmlsZVBhdGggPSBbZGF0YWJhc2VEaXJlY3Rvcnkgc3RyaW5nQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OmZpbGVdOwotICAgICAgICBpZiAoIVtmaWxlTWFuYWdlciBy
ZW1vdmVJdGVtQXRQYXRoOmZpbGVQYXRoIGVycm9yOk5VTExdKQotICAgICAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gZGVsZXRlICVAIGZyb20gb2xkIGljb24gZGlyZWN0b3J5IiwgZmlsZVBh
dGgpOwotICAgIH0KLSAgICAKLSAgICAvLyBJZiB0aGUgbmV3IGljb25EQiB3YXNuJ3QgaW4gdGhh
dCBkaXJlY3RvcnksIHdlIGNhbiBkZWxldGUgdGhlIGRpcmVjdG9yeSBpdHNlbGYKLSAgICBpZiAo
IWZvdW5kSWNvbkRCKQotICAgICAgICBybWRpcihbZGF0YWJhc2VEaXJlY3RvcnkgZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uXSk7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIE5TSW1hZ2Ug
KndlYkdldE5TSW1hZ2UoSW1hZ2UqIGltYWdlLCBOU1NpemUgc2l6ZSkKIHsKICAgICBBU1NFUlRf
TUFJTl9USFJFQUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNv
bkRhdGFiYXNlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFi
YXNlSW50ZXJuYWwuaAppbmRleCA2YzBhZTUwLi40OThmYTc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZUludGVybmFsLmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2VJbnRlcm5hbC5oCkBAIC00Nyw1ICs0Nyw0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIC0gKHZvaWQpX3N0YXJ0VXBJY29uRGF0YWJhc2U7CiBAZW5k
CiAKLWV4dGVybiBib29sIGltcG9ydFRvV2ViQ29yZUZvcm1hdCgpOwogTlNJbWFnZSAqd2ViR2V0
TlNJbWFnZShXZWJDb3JlOjpJbWFnZSosIE5TU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViSWNvbkRhdGFiYXNlUHJpdmF0ZS5oCmluZGV4IDhmYmE4OGIuLmU3YmRhZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlUHJpdmF0ZS5oCkBA
IC0zNyw5ICszNyw2IEBACiAvLyByZWxlYXNlSWNvbkZvclVSTDogaW4gcmVzcG9uc2UgdG8gdGhp
cyBub3RpZmljYXRpb24uCiBleHRlcm4gTlNTdHJpbmcgKldlYkljb25EYXRhYmFzZURpZFJlbW92
ZUFsbEljb25zTm90aWZpY2F0aW9uOwogCi0vLyBLZXkgdG8gc3RvcmUgdGhlIHBhdGggdG8gbG9v
ayBmb3Igb2xkIHN0eWxlIGljb25zIGluIHRvIGNvbnZlcnQgdG8gdGhlIG5ldyBpY29uIGRiCi1l
eHRlcm4gTlNTdHJpbmcgKldlYkljb25EYXRhYmFzZUltcG9ydERpcmVjdG9yeURlZmF1bHRzS2V5
OwotCiBAaW50ZXJmYWNlIFdlYkljb25EYXRhYmFzZSAoV2ViUGVuZGluZ1B1YmxpYykKIAogLyoh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0
YWJhc2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25E
YXRhYmFzZUNsaWVudC5oCmluZGV4IDE3MDViMWEuLjk3YjE3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5o
CkBAIC0zMSw3ICszMSw2IEBACiAKIGNsYXNzIFdlYkljb25EYXRhYmFzZUNsaWVudCA6IHB1Ymxp
YyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9v
bCBwZXJmb3JtSW1wb3J0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFs
bEljb25zKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25VUkxGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBv
cnRJY29uRGF0YUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGll
bnQubW0KaW5kZXggZGIwYzc3ZS4uODVlYzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViSWNvbkRhdGFiYXNlQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5tbQpAQCAtMzMs
MTQgKzMzLDYgQEAKIAogI2lmIEVOQUJMRShJQ09OREFUQUJBU0UpCiAKLWJvb2wgV2ViSWNvbkRh
dGFiYXNlQ2xpZW50OjpwZXJmb3JtSW1wb3J0KCkKLXsKLSAgICBOU0F1dG9yZWxlYXNlUG9vbCAq
cG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotICAgIGJvb2wgcmVzdWx0
ID0gaW1wb3J0VG9XZWJDb3JlRm9ybWF0KCk7Ci0gICAgW3Bvb2wgZHJhaW5dOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KIHZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRSZW1vdmVBbGxJ
Y29ucygpCiB7CiAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQ
b29sIGFsbG9jXSBpbml0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5l
eHAgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQuZXhwCmluZGV4IDA0OTAwODAuLjA1Y2IzMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0LmV4cApAQCAtOTAsNyArOTAsNiBAQCBfV2ViSGlzdG9yeVNhdmVkTm90
aWZpY2F0aW9uCiBfV2ViSWNvbkRhdGFiYXNlRGlkQWRkSWNvbk5vdGlmaWNhdGlvbgogX1dlYklj
b25EYXRhYmFzZURpZFJlbW92ZUFsbEljb25zTm90aWZpY2F0aW9uCiBfV2ViSWNvbkRhdGFiYXNl
RGlyZWN0b3J5RGVmYXVsdHNLZXkKLV9XZWJJY29uRGF0YWJhc2VJbXBvcnREaXJlY3RvcnlEZWZh
dWx0c0tleQogX1dlYkljb25MYXJnZVNpemUKIF9XZWJJY29uTWVkaXVtU2l6ZQogX1dlYkljb25O
b3RpZmljYXRpb25Vc2VySW5mb1VSTEtleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA3YWRlNGFkLi5kMzQx
NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTAxICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIFNhZmFyaSAy
IC0+IFNhZmFyaSAzIGljb24gZGF0YWJhc2UgaW1wb3J0IGNvZGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODExMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE51a2UgdGhlIHBlcmZvcm1JbXBvcnQoKSBJ
Y29uRGF0YWJhc2VDbGllbnQgbWV0aG9kLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNv
bkRhdGFiYXNlQ2xpZW50UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ljb25EYXRh
YmFzZUNsaWVudFF0Lmg6CisgICAgICAgIChJY29uRGF0YWJhc2VDbGllbnRRdCk6CisKIDIwMTIt
MDktMjggIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+
CiAKICAgICAgICAgQ29kZSBpbnNpZGUgRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlw
ZSgpIGltcGxlbWVudGF0aW9ucyBjYW4gYmUgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBXSyBwb3J0
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJh
c2VDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRh
YmFzZUNsaWVudFF0LmNwcAppbmRleCBiYWFlY2FlLi4wMWQ5ZmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmNw
cApAQCAtNTMsMTEgKzUzLDYgQEAgSWNvbkRhdGFiYXNlQ2xpZW50UXQ6On5JY29uRGF0YWJhc2VD
bGllbnRRdCgpCiB7CiB9CiAKLWJvb2wgSWNvbkRhdGFiYXNlQ2xpZW50UXQ6OnBlcmZvcm1JbXBv
cnQoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEljb25EYXRhYmFzZUNsaWVudFF0
OjpkaWRSZW1vdmVBbGxJY29ucygpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmgKaW5kZXggNTllOTgzOS4uNmFj
MjExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0
YWJhc2VDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSWNv
bkRhdGFiYXNlQ2xpZW50UXQuaApAQCAtMzgsNyArMzgsNiBAQCBjbGFzcyBJY29uRGF0YWJhc2VD
bGllbnRRdCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgSWNvbkRhdGFiYXNlQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgSWNvbkRhdGFiYXNlQ2xpZW50UXQqIGluc3RhbmNlKCk7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1v
dmVBbGxJY29ucygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGJhNmE1YjUuLjRjZWMy
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0wMSAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBTYWZhcmkg
MiAtPiBTYWZhcmkgMyBpY29uIGRhdGFiYXNlIGltcG9ydCBjb2RlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxMTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOdWtlIHRoZSBwZXJmb3JtSW1wb3J0KCkg
SWNvbkRhdGFiYXNlQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkljb25EYXRhYmFzZS5j
cHA6CisgICAgICAgICogV2ViSWNvbkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJJY29uRGF0YWJh
c2UpOgorCiAyMDEyLTA5LTI1ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzOTcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4IGNkZGM0MGQuLjI1ZDdlYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViSWNvbkRhdGFiYXNlLmNwcApAQCAtMzE2LDEyICszMTYsNiBAQCBIQklU
TUFQIFdlYkljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVEZWZhdWx0SWNvbkJpdG1hcChMUFNJWkUg
c2l6ZSkKIAogLy8gSWNvbkRhdGFiYXNlQ2xpZW50CiAKLWJvb2wgV2ViSWNvbkRhdGFiYXNlOjpw
ZXJmb3JtSW1wb3J0KCkKLXsKLSAgICAvLyBXaW5kb3dzIGRvZXNuJ3QgZG8gYW55IG9sZC1zdHls
ZSBkYXRhYmFzZSBpbXBvcnRpbmcuCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgV2ViSWNv
bkRhdGFiYXNlOjpkaWRSZW1vdmVBbGxJY29ucygpCiB7CiAgICAgLy8gUXVldWVpbmcgdGhlIGVt
cHR5IHN0cmluZyBpcyBhIHNwZWNpYWwgd2F5IG9mIHNheWluZyAidGhpcyBxdWV1ZWQgbm90aWZp
Y2F0aW9uIGlzIHRoZSBkaWRSZW1vdmVBbGxJY29ucyBub3RpZmljYXRpb24iCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkljb25EYXRhYmFzZS5oCmluZGV4IGE4OTViODEuLjBmZGFiNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkljb25EYXRhYmFzZS5oCkBAIC0xMDQsNyArMTA0LDYgQEAgcHVibGljOgogICAgICAgICAv
KiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIHJlc3VsdCk7CiAKICAgICAvLyBJY29uRGF0YWJhc2VD
bGllbnQKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9ydCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZW1vdmVBbGxJY29ucygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJM
Rm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBv
cnRJY29uRGF0YUZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBi
OWVmZDJhLi4xNzdkNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMDEg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUg
U2FmYXJpIDIgLT4gU2FmYXJpIDMgaWNvbiBkYXRhYmFzZSBpbXBvcnQgY29kZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MTEzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTnVrZSB0aGUgcGVyZm9ybUlt
cG9ydCgpIEljb25EYXRhYmFzZUNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkljb25EYXRhYmFzZS5oOgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlKToKKwogMjAx
Mi0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgog
CiAgICAgICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAppbmRleCAwZmU2MzY5Li5lZDQ4MGU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcApAQCAtMjM0LDExICsy
MzQsNiBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6aW5pdGlhbGl6ZUljb25EYXRhYmFzZUNsaWVu
dChjb25zdCBXS0ljb25EYXRhYmFzZUNsaWVudCogYwogfQogCiAvLyBXZWJDb3JlOjpJY29uRGF0
YWJhc2VDbGllbnQKLWJvb2wgV2ViSWNvbkRhdGFiYXNlOjpwZXJmb3JtSW1wb3J0KCkKLXsKLSAg
ICAvLyBXZWJLaXQyIGljb24gZGF0YWJhc2UgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCBpbXBv
cnRpbmcgYW55IG9sZCBpY29uIGRhdGFiYXNlIGZvcm1hdHMuCi0gICAgcmV0dXJuIHRydWU7Ci19
CiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmIHBhZ2VVUkwpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRh
dGFiYXNlLmgKaW5kZXggYjcyNTQwNS4uYjA3YTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJY29uRGF0YWJhc2UuaApAQCAtOTEsNyArOTEsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBpbml0aWFsaXplSWNvbkRhdGFiYXNlQ2xpZW50KGNvbnN0IFdLSWNvbkRhdGFiYXNlQ2xpZW50
Kik7CiAKICAgICAvLyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQKLSAgICB2aXJ0dWFsIGJv
b2wgcGVyZm9ybUltcG9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9y
UGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRh
dGFGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJ
Y29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsK
</data>
<flag name="commit-queue"
          id="178992"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166613</attachid>
            <date>2012-10-01 23:17:08 -0700</date>
            <delta_ts>2012-10-01 23:29:46 -0700</delta_ts>
            <desc>Patch v2 - Now with more passing release builds!</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>33012</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDk0MjVlLi4wN2E4YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMTAtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB0aGUgU2FmYXJpIDIgLT4gU2FmYXJpIDMgaWNvbiBkYXRhYmFzZSBpbXBvcnQg
Y29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIG5vdGlvbnMgb2YgImltcG9ydGluZyBhbiBvbGQgZGF0YWJhc2UgZm9ybWF0IiBmcm9tIHRo
ZSBJY29uRGF0YWJhc2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gRmVhdHVyZSByZW1vdmVk
LCBhbmQgbm8gcHJldmlvdXMgdGVzdHMgY292ZXJlZCBpdC4KKworICAgICAgICAqIGxvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChEZWZhdWx0SWNvbkRhdGFiYXNlQ2xpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjppY29uRGF0YWJh
c2VTeW5jVGhyZWFkKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaDoKKyAg
ICAgICAgKEljb25EYXRhYmFzZSk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
QmFzZS5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorCiAyMDEyLTEwLTAxICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgZmxleGJveCBkb2VzIHdyb25nIGJhc2VsaW5lIGl0ZW0g
YWxpZ25tZW50IGluIGNvbHVtbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWJiZjhmMi4uYzM0
MjZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIyMTksOCArMjIxOSw2IEBAIF9fWk43V2Vi
Q29yZTEySWNvbkRhdGFiYXNlMjByZXRhaW5lZFBhZ2VVUkxDb3VudEV2CiBfX1pON1dlYkNvcmUx
Mkljb25EYXRhYmFzZTIxcmVsZWFzZUljb25Gb3JQYWdlVVJMRVJLTjNXVEY2U3RyaW5nRQogX19a
TjdXZWJDb3JlMTJJY29uRGF0YWJhc2UyM2RlZmF1bHREYXRhYmFzZUZpbGVuYW1lRXYKIF9fWk43
V2ViQ29yZTEySWNvbkRhdGFiYXNlMjNpY29uUmVjb3JkQ291bnRXaXRoRGF0YUV2Ci1fX1pON1dl
YkNvcmUxMkljb25EYXRhYmFzZTIzaW1wb3J0SWNvblVSTEZvclBhZ2VVUkxFUktOM1dURjZTdHJp
bmdFUzRfCi1fX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTI0aW1wb3J0SWNvbkRhdGFGb3JJY29u
VVJMRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVFUktOUzFfNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlMjVzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkRWIK
IF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlMjdjaGVja0ludGVncml0eUJlZm9yZU9wZW5pbmdF
dgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U1Y2xvc2VFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggZDcwZWNiNS4uOTRhNGI5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC05Myw3ICs5Myw2
IEBAIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2luZyhjb25zdCBTdHJpbmcmIHVybCkKIGNsYXNz
IERlZmF1bHRJY29uRGF0YWJhc2VDbGllbnQgOiBwdWJsaWMgSWNvbkRhdGFiYXNlQ2xpZW50IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
cGVyZm9ybUltcG9ydCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1w
b3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgeyB9IAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpIHsgfQpAQCAt
ODA1LDggKzgwNCw2IEBAIEljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKCkKICAgICAsIG1fcmV0
YWluT3JSZWxlYXNlSWNvblJlcXVlc3RlZChmYWxzZSkKICAgICAsIG1faW5pdGlhbFBydW5pbmdD
b21wbGV0ZShmYWxzZSkKICAgICAsIG1fY2xpZW50KGRlZmF1bHRDbGllbnQoKSkKLSAgICAsIG1f
aW1wb3J0ZWQoZmFsc2UpCi0gICAgLCBtX2lzSW1wb3J0ZWRTZXQoZmFsc2UpCiB7CiAgICAgTE9H
KEljb25EYXRhYmFzZSwgIkNyZWF0aW5nIEljb25EYXRhYmFzZSAlcCIsIHRoaXMpOwogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC05NjgsMjcgKzk2NSw2IEBAIFBhZ2VVUkxSZWNvcmQq
IEljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVQYWdlVVJMUmVjb3JkKGNvbnN0IFN0cmluZyYgcGFn
ZVVSTCkKIC8vICoqKiBTeW5jIFRocmVhZCBPbmx5ICoqKgogLy8gKioqKioqKioqKioqKioqKioq
KioqKioqCiAKLXZvaWQgSWNvbkRhdGFiYXNlOjppbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKLXsKLSAgICBBU1NFUlRf
SUNPTl9TWU5DX1RIUkVBRCgpOwotICAgIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgb25seSBm
b3Igc2V0dGluZyBhY3R1YWwgZXhpc3RpbmcgdXJsIG1hcHBpbmdzIHNvIGFzc2VydCB0aGF0IG5l
aXRoZXIgb2YgdGhlc2UgVVJMcyBhcmUgZW1wdHkKLSAgICBBU1NFUlQoIWljb25VUkwuaXNFbXB0
eSgpKTsKLSAgICBBU1NFUlQoIXBhZ2VVUkwuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoZG9jdW1l
bnRDYW5IYXZlSWNvbihwYWdlVVJMKSk7Ci0gICAgCi0gICAgc2V0SWNvblVSTEZvclBhZ2VVUkxJ
blNRTERhdGFiYXNlKGljb25VUkwsIHBhZ2VVUkwpOyAgICAKLX0KLQotdm9pZCBJY29uRGF0YWJh
c2U6OmltcG9ydEljb25EYXRhRm9ySWNvblVSTChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0
YSwgY29uc3QgU3RyaW5nJiBpY29uVVJMKQotewotICAgIEFTU0VSVF9JQ09OX1NZTkNfVEhSRUFE
KCk7Ci0gICAgCi0gICAgQVNTRVJUKCFpY29uVVJMLmlzRW1wdHkoKSk7Ci0KLSAgICB3cml0ZUlj
b25TbmFwc2hvdFRvU1FMRGF0YWJhc2UoSWNvblNuYXBzaG90KGljb25VUkwsIChpbnQpY3VycmVu
dFRpbWUoKSwgZGF0YS5nZXQoKSkpOwotfQotCiBib29sIEljb25EYXRhYmFzZTo6c2hvdWxkU3Rv
cFRocmVhZEFjdGl2aXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlRfSUNPTl9TWU5DX1RIUkVBRCgp
OwpAQCAtMTA2MCwzMiArMTAzNiw2IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjppY29uRGF0YWJhc2VT
eW5jVGhyZWFkKCkKICAgICBMT0coSWNvbkRhdGFiYXNlLCAiKFRIUkVBRCkgcGVyZm9ybU9wZW5J
bml0aWFsaXphdGlvbigpIHRvb2sgJS40ZiBzZWNvbmRzLCBub3cgJS40ZiBzZWNvbmRzIGZyb20g
dGhyZWFkIHN0YXJ0IiwgbmV3U3RhbXAgLSB0aW1lU3RhbXAsIG5ld1N0YW1wIC0gc3RhcnRUaW1l
KTsKICAgICB0aW1lU3RhbXAgPSBuZXdTdGFtcDsKICNlbmRpZiAKLQotICAgIGlmICghaW1wb3J0
ZWQoKSkgewotICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiKFRIUkVBRCkgUGVyZm9ybWluZyBT
YWZhcmkyIGltcG9ydCBwcm9jZWR1cmUiKTsKLSAgICAgICAgU1FMaXRlVHJhbnNhY3Rpb24gaW1w
b3J0VHJhbnNhY3Rpb24obV9zeW5jREIpOwotICAgICAgICBpbXBvcnRUcmFuc2FjdGlvbi5iZWdp
bigpOwotICAgICAgICAKLSAgICAgICAgLy8gQ29tbWl0IHRoZSB0cmFuc2FjdGlvbiBvbmx5IGlm
IHRoZSBpbXBvcnQgY29tcGxldGVzICh0aGUgaW1wb3J0IHNob3VsZCBiZSBhdG9taWMpCi0gICAg
ICAgIGlmIChtX2NsaWVudC0+cGVyZm9ybUltcG9ydCgpKSB7Ci0gICAgICAgICAgICBzZXRJbXBv
cnRlZCh0cnVlKTsKLSAgICAgICAgICAgIGltcG9ydFRyYW5zYWN0aW9uLmNvbW1pdCgpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIihUSFJFQUQpIFNh
ZmFyaSAyIGltcG9ydCB3YXMgY2FuY2VsbGVkIik7Ci0gICAgICAgICAgICBpbXBvcnRUcmFuc2Fj
dGlvbi5yb2xsYmFjaygpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoc2hvdWxk
U3RvcFRocmVhZEFjdGl2aXR5KCkpIHsKLSAgICAgICAgICAgIHN5bmNUaHJlYWRNYWluTG9vcCgp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSNpZiAhTE9H
X0RJU0FCTEVECi0gICAgICAgIG5ld1N0YW1wID0gY3VycmVudFRpbWUoKTsKLSAgICAgICAgTE9H
KEljb25EYXRhYmFzZSwgIihUSFJFQUQpIHBlcmZvcm1JbXBvcnQoKSB0b29rICUuNGYgc2Vjb25k
cywgbm93ICUuNGYgc2Vjb25kcyBmcm9tIHRocmVhZCBzdGFydCIsIG5ld1N0YW1wIC0gdGltZVN0
YW1wLCBuZXdTdGFtcCAtIHN0YXJ0VGltZSk7Ci0gICAgICAgIHRpbWVTdGFtcCA9IG5ld1N0YW1w
OwotI2VuZGlmIAotICAgIH0KICAgICAgICAgCiAgICAgLy8gVW5jb21tZW50IHRoZSBmb2xsb3dp
bmcgbGluZSB0byBzaW11bGF0ZSBhIGxvbmcgbGFzdGluZyBVUkwgaW1wb3J0ICgqSFVHRSogaWNv
biBkYXRhYmFzZXMsIG9yIG5ldHdvcmsgaG9tZSBkaXJlY3RvcmllcykKICAgICAvLyB3aGlsZSAo
Y3VycmVudFRpbWUoKSAtIHRpbWVTdGFtcCA8IDEwKTsKQEAgLTE5MTQsNTQgKzE4NjQsNiBAQCB2
b2lkKiBJY29uRGF0YWJhc2U6OmNsZWFudXBTeW5jVGhyZWFkKCkKICAgICByZXR1cm4gMDsKIH0K
IAotYm9vbCBJY29uRGF0YWJhc2U6OmltcG9ydGVkKCkKLXsKLSAgICBBU1NFUlRfSUNPTl9TWU5D
X1RIUkVBRCgpOwotICAgIAotICAgIGlmIChtX2lzSW1wb3J0ZWRTZXQpCi0gICAgICAgIHJldHVy
biBtX2ltcG9ydGVkOwotICAgICAgICAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcXVlcnkobV9zeW5j
REIsICJTRUxFQ1QgSWNvbkRhdGFiYXNlSW5mby52YWx1ZSBGUk9NIEljb25EYXRhYmFzZUluZm8g
V0hFUkUgSWNvbkRhdGFiYXNlSW5mby5rZXkgPSBcIkltcG9ydGVkU2FmYXJpMkljb25zXCI7Iik7
Ci0gICAgaWYgKHF1ZXJ5LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykgewotICAgICAgICBMT0df
RVJST1IoIlVuYWJsZSB0byBwcmVwYXJlIGltcG9ydGVkIHN0YXRlbWVudCIpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIGludCByZXN1bHQgPSBxdWVyeS5zdGVwKCk7
Ci0gICAgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRSb3cpCi0gICAgICAgIHJlc3VsdCA9IHF1ZXJ5
LmdldENvbHVtbkludCgwKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxS
ZXN1bHREb25lKQotICAgICAgICAgICAgTE9HX0VSUk9SKCJpbXBvcnRlZCBzdGF0ZW1lbnQgZmFp
bGVkIik7Ci0gICAgICAgIHJlc3VsdCA9IDA7Ci0gICAgfQotICAgIAotICAgIG1faXNJbXBvcnRl
ZFNldCA9IHRydWU7Ci0gICAgcmV0dXJuIG1faW1wb3J0ZWQgPSByZXN1bHQ7Ci19Ci0KLXZvaWQg
SWNvbkRhdGFiYXNlOjpzZXRJbXBvcnRlZChib29sIGltcG9ydCkKLXsKLSAgICBBU1NFUlRfSUNP
Tl9TWU5DX1RIUkVBRCgpOwotCi0gICAgbV9pbXBvcnRlZCA9IGltcG9ydDsKLSAgICBtX2lzSW1w
b3J0ZWRTZXQgPSB0cnVlOwotICAgIAotICAgIFN0cmluZyBxdWVyeVN0cmluZyA9IGltcG9ydCA/
Ci0gICAgICAgICJJTlNFUlQgSU5UTyBJY29uRGF0YWJhc2VJbmZvIChrZXksIHZhbHVlKSBWQUxV
RVMgKFwiSW1wb3J0ZWRTYWZhcmkySWNvbnNcIiwgMSk7IiA6Ci0gICAgICAgICJJTlNFUlQgSU5U
TyBJY29uRGF0YWJhc2VJbmZvIChrZXksIHZhbHVlKSBWQUxVRVMgKFwiSW1wb3J0ZWRTYWZhcmky
SWNvbnNcIiwgMCk7IjsKLSAgICAgICAgCi0gICAgU1FMaXRlU3RhdGVtZW50IHF1ZXJ5KG1fc3lu
Y0RCLCBxdWVyeVN0cmluZyk7Ci0gICAgCi0gICAgaWYgKHF1ZXJ5LnByZXBhcmUoKSAhPSBTUUxS
ZXN1bHRPaykgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBwcmVwYXJlIHNldCBpbXBv
cnRlZCBzdGF0ZW1lbnQiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0gICAgCi0gICAgCi0gICAg
aWYgKHF1ZXJ5LnN0ZXAoKSAhPSBTUUxSZXN1bHREb25lKQotICAgICAgICBMT0dfRVJST1IoInNl
dCBpbXBvcnRlZCBzdGF0ZW1lbnQgZmFpbGVkIik7Ci19Ci0KIC8vIHJlYWR5U1FMaXRlU3RhdGVt
ZW50KCkgaGFuZGxlcyB0d28gdGhpbmdzCiAvLyAxIC0gSWYgdGhlIFNRTERhdGFiYXNlJiBhcmd1
bWVudCBpcyBkaWZmZXJlbnQsIHRoZSBzdGF0ZW1lbnQgbXVzdCBiZSBkZXN0cm95ZWQgYW5kIHJl
bWFkZS4gIFRoaXMgaGFwcGVucyB3aGVuIHRoZSB1c2VyCiAvLyAgICAgc3dpdGNoZXMgdG8gYW5k
IGZyb20gcHJpdmF0ZSBicm93c2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuaAppbmRleCBkZjQ0MGI3Li4wYTcyNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuaApAQCAtMTkyLDEwICsxOTIsNiBAQCBwcml2YXRlOgogCiAvLyAq
KiogU3luYyBUaHJlYWQgT25seSAqKioKIHB1YmxpYzoKLSAgICAvLyBTaG91bGQgYmUgdXNlZCBv
bmx5IG9uIHRoZSBzeW5jIHRocmVhZCBhbmQgb25seSBieSB0aGUgU2FmYXJpIDIgSWNvbnMgaW1w
b3J0IHByb2NlZHVyZQotICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRJY29uVVJMRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCk7Ci0gICAgdmlydHVh
bCB2b2lkIGltcG9ydEljb25EYXRhRm9ySWNvblVSTChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
ZGF0YSwgY29uc3QgU3RyaW5nJiBpY29uVVJMKTsKLSAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkU3RvcFRocmVhZEFjdGl2aXR5KCkgY29uc3Q7CiAKIHByaXZhdGU6ICAgIApAQCAtMjE3LDEw
ICsyMTMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQqIGNsZWFudXBTeW5jVGhyZWFkKCk7CiAgICAg
dm9pZCBwZXJmb3JtUmV0YWluSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgaW50IHJldGFp
bkNvdW50KTsKICAgICB2b2lkIHBlcmZvcm1SZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJiwgaW50IHJlbGVhc2VDb3VudCk7Ci0KLSAgICAvLyBSZWNvcmQgKG9uIGRpc2spIHdoZXRo
ZXIgb3Igbm90IFNhZmFyaSAyLXN0eWxlIGljb25zIHdlcmUgaW1wb3J0ZWQgKG9uY2UgcGVyIGRh
dGFhYnNlKQotICAgIGJvb2wgaW1wb3J0ZWQoKTsKLSAgICB2b2lkIHNldEltcG9ydGVkKGJvb2wp
OwogICAgIAogICAgIGJvb2wgd2FzRXhjbHVkZWRGcm9tQmFja3VwKCk7CiAgICAgdm9pZCBzZXRX
YXNFeGNsdWRlZEZyb21CYWNrdXAoKTsKQEAgLTI0OSwxMCArMjQxLDYgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBTUUxpdGVEYXRhYmFzZSBtX3N5bmNEQjsKICAgICAKLSAgICAvLyBUcmFjayB3aGV0
aGVyIHRoZSAiU2FmYXJpIDIiIGltcG9ydCBpcyBjb21wbGV0ZSBhbmQvb3Igc2V0IGluIHRoZSBk
YXRhYmFzZQotICAgIGJvb2wgbV9pbXBvcnRlZDsKLSAgICBib29sIG1faXNJbXBvcnRlZFNldDsK
LSAgICAKICAgICBPd25QdHI8U1FMaXRlU3RhdGVtZW50PiBtX3NldEljb25JREZvclBhZ2VVUkxT
dGF0ZW1lbnQ7CiAgICAgT3duUHRyPFNRTGl0ZVN0YXRlbWVudD4gbV9yZW1vdmVQYWdlVVJMU3Rh
dGVtZW50OwogICAgIE93blB0cjxTUUxpdGVTdGF0ZW1lbnQ+IG1fZ2V0SWNvbklERm9ySWNvblVS
TFN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJh
c2UuaAppbmRleCA1NmNiMDNjLi4wNDBmYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRGF0YWJhc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oCkBAIC0xOTgsOCArMTk4LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgc2l6ZV90IGljb25SZWNvcmRDb3VudCgpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIHNpemVfdCBpY29uUmVjb3JkQ291bnRXaXRoRGF0YSgpIHsgcmV0dXJuIDA7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBpbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0SWNvbkRhdGFGb3JJY29uVVJM
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCBvcGVuKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlQ2xpZW50LmgKaW5kZXggM2Q1ZjM0OS4uNzA0OTRlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQ2xpZW50LmgKQEAgLTM3LDcgKzM3LDYgQEAg
Y2xhc3MgSWNvbkRhdGFiYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JY29uRGF0
YWJhc2VDbGllbnQoKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtSW1wb3J0KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJp
bmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChj
b25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4
IGVlMTFkNWEuLmZjNzc0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDEyLTEwLTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgdGhlIFNhZmFyaSAyIC0+IFNhZmFyaSAzIGljb24gZGF0YWJhc2Ug
aW1wb3J0IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05ODExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE51a2UgdGhlIHBlcmZvcm1JbXBvcnQoKSBJY29uRGF0YWJhc2VDbGllbnQgbWV0aG9kLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5j
cHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJy
eS5oOgorICAgICAgICAoSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMTAt
MDEgIE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJy
eV0gUmVtb3ZlIHN1cHByZXNzaW5nIG9mIFZLQiBoaWRpbmcgd2hlbiBwcm9jZXNzaW5nIGNoYW5n
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXgg
NDcyODE0Ni4uZGE5NWNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRCbGFj
a0JlcnJ5LmNwcApAQCAtNTcsMTEgKzU3LDYgQEAgYm9vbCBJY29uRGF0YWJhc2VDbGllbnRCbGFj
a0JlcnJ5Ojppbml0SWNvbkRhdGFiYXNlKGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2UKICAg
ICByZXR1cm4gbV9pbml0U3RhdGUgPT0gSW5pdGlhbGl6ZVN1Y2NlZWRlZDsKIH0KIAotYm9vbCBJ
Y29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5OjpwZXJmb3JtSW1wb3J0KCkKLXsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogdm9pZCBJY29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5OjpkaWRSZW1v
dmVBbGxJY29ucygpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEJsYWNrQmVy
cnkuaAppbmRleCBjNzJhNDUwLi5kYzZkMDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50QmxhY2tCZXJyeS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VD
bGllbnRCbGFja0JlcnJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBJ
Y29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5KiBnZXRJbnN0YW5jZSgpOwogICAgIGJvb2wgaW5p
dEljb25EYXRhYmFzZShjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlNldHRpbmdzKik7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZW1vdmVBbGxJY29ucygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFn
ZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFG
b3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDQxNjM3NzMuLmUw
YWNmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMC0wMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBTYWZh
cmkgMiAtPiBTYWZhcmkgMyBpY29uIGRhdGFiYXNlIGltcG9ydCBjb2RlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxMTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOdWtlIHRoZSBwZXJmb3JtSW1wb3J0
KCkgSWNvbkRhdGFiYXNlQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ljb25EYXRhYmFzZUNsaWVudEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNv
bkRhdGFiYXNlQ2xpZW50RWZsLmg6CisKIDIwMTItMDktMjggIE1pa2hhaWwgUG96ZG55YWtvdiAg
PG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgQ29kZSBpbnNpZGUgRnJh
bWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZSgpIGltcGxlbWVudGF0aW9ucyBjYW4gYmUg
c2hhcmVkIGFtb25nIGRpZmZlcmVudCBXSyBwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEVmbC5jcHAKaW5kZXgg
YzllNDMyOC4uNGUzNTEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRFZmwuY3BwCkBAIC0yNSwxMiArMjUsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSWNvbkRhdGFiYXNlQ2xpZW50RWZsOjpw
ZXJmb3JtSW1wb3J0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB0cnVl
OwotfQotCiB2b2lkIEljb25EYXRhYmFzZUNsaWVudEVmbDo6ZGlkUmVtb3ZlQWxsSWNvbnMoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEVmbC5oCmluZGV4IDUxNTc2MTQuLmMx
NGNkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ljb25E
YXRhYmFzZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0ljb25EYXRhYmFzZUNsaWVudEVmbC5oCkBAIC0yOCw3ICsyOCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSWNvbkRhdGFiYXNlQ2xpZW50RWZsIDogcHVibGljIEljb25EYXRhYmFz
ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1JbXBvcnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQWxsSWNvbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
SW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwppbmRleCA2ZWE1NGEwLi5mZjNiNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMTAtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB0aGUgU2FmYXJpIDIgLT4gU2FmYXJpIDMgaWNvbiBkYXRhYmFzZSBpbXBvcnQg
Y29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTnVr
ZSB0aGUgcGVyZm9ybUltcG9ydCgpIEljb25EYXRhYmFzZUNsaWVudCBtZXRob2QuCisKKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKKyAgICAgICAgKEljb25EYXRh
YmFzZUNsaWVudEd0ayk6CisKIDIwMTItMTAtMDEgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZp
ZXJAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbR3RrXSBjcmFzaCB3aGVuIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW9uIGlzIHR1cm5lZCBvZmYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKaW5kZXggNmJhYmZlNC4uYzYyYWIzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFz
ZS5jcHAKQEAgLTgwLDcgKzgwLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0RmF2aWNvbkRhdGFiYXNl
Q2xvc2UoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSk7CiBjbGFzcyBJY29uRGF0YWJh
c2VDbGllbnRHdGsgOiBwdWJsaWMgSWNvbkRhdGFiYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICAv
LyBJY29uRGF0YWJhc2VDbGllbnQgaW50ZXJmYWNlCi0gICAgdmlydHVhbCBib29sIHBlcmZvcm1J
bXBvcnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbElj
b25zKCkgeyB9OwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYW4gaWNvbiBpcyByZXF1ZXN0ZWQgd2hp
bGUgdGhlIGluaXRpYWwgaW1wb3J0IGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjZlMjljOS4uNWZm
NDA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEwLTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIFNhZmFy
aSAyIC0+IFNhZmFyaSAzIGljb24gZGF0YWJhc2UgaW1wb3J0IGNvZGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODExMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE51a2UgdGhlIHBlcmZvcm1JbXBvcnQo
KSBJY29uRGF0YWJhc2VDbGllbnQgbWV0aG9kLCBhcyB3ZWxsIGFzIHRoZSBzdXBwb3J0aW5nIG1l
dGhvZHMuCisKKyAgICAgICAgKiBNaXNjL1dlYkljb25EYXRhYmFzZS5tbToKKyAgICAgICAgKiBN
aXNjL1dlYkljb25EYXRhYmFzZUludGVybmFsLmg6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0
YWJhc2VQcml2YXRlLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSWNvbkRhdGFiYXNl
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSWNvbkRhdGFiYXNlQ2xpZW50
Lm1tOgorICAgICAgICAqIFdlYktpdC5leHA6CisKIDIwMTItMDktMjggIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgbWV0
aG9kIG92ZXJsb2FkaW5nIGZyb20gYnJpZGdlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJJY29uRGF0YWJhc2UubW0KaW5kZXggZmVlMzBmNy4uYmJmNmVjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTU2LDcgKzU2LDYgQEAgTlNTdHJpbmcg
KldlYkljb25Ob3RpZmljYXRpb25Vc2VySW5mb1VSTEtleSA9ICAgICAgICAgICAgICBAIldlYklj
b25Ob3RpZmljYXRpb24KIE5TU3RyaW5nICpXZWJJY29uRGF0YWJhc2VEaWRSZW1vdmVBbGxJY29u
c05vdGlmaWNhdGlvbiA9ICAgQCJXZWJJY29uRGF0YWJhc2VEaWRSZW1vdmVBbGxJY29uc05vdGlm
aWNhdGlvbiI7CiAKIE5TU3RyaW5nICpXZWJJY29uRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tl
eSA9IEAiV2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXkiOwotTlNTdHJpbmcgKldl
Ykljb25EYXRhYmFzZUltcG9ydERpcmVjdG9yeURlZmF1bHRzS2V5ID0gQCJXZWJJY29uRGF0YWJh
c2VJbXBvcnREaXJlY3RvcnlEZWZhdWx0c0tleSI7CiBOU1N0cmluZyAqV2ViSWNvbkRhdGFiYXNl
RW5hYmxlZERlZmF1bHRzS2V5ID0gICBAIldlYkljb25EYXRhYmFzZUVuYWJsZWQiOwogCiBOU1N0
cmluZyAqV2ViSWNvbkRhdGFiYXNlUGF0aCA9IEAifi9MaWJyYXJ5L0ljb25zIjsKQEAgLTQ1NCw5
NiArNDUzLDYgQEAgLSAodm9pZClfc2NhbGVJY29uOihOU0ltYWdlICopaWNvbiB0b1NpemU6KE5T
U2l6ZSlzaXplCiAjZW5kaWYKIH0KIAotLy8gVGhpcyBoYXNoaW5nIFN0cmluZy0+ZmlsZW5hbWUg
YWxnb3JpdGhtIGNhbWUgZnJvbSBXZWJGaWxlRGF0YWJhc2UubSBhbmQgaXMgd2hhdCB3YXMgdXNl
ZCBpbiB0aGUgCi0vLyBXZWJLaXQgSWNvbiBEYXRhYmFzZQotc3RhdGljIHZvaWQgbGVnYWN5SWNv
bkRhdGFiYXNlRmlsZVBhdGhGb3JLZXkoaWQga2V5LCBjaGFyICpidWZmZXIpCi17Ci0gICAgY29u
c3QgY2hhciAqczsKLSAgICBVSW50MzIgaGFzaDE7Ci0gICAgVUludDMyIGhhc2gyOwotICAgIENG
SW5kZXggbGVuOwotICAgIENGSW5kZXggY250OwotICAgIAotICAgIHMgPSBbW1tba2V5IGRlc2Ny
aXB0aW9uXSBsb3dlcmNhc2VTdHJpbmddIHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdIFVURjhT
dHJpbmddOwotICAgIGxlbiA9IHN0cmxlbihzKTsKLQotICAgIC8vIGNvbXB1dGUgZmlyc3QgaGFz
aCAgICAKLSAgICBoYXNoMSA9IGxlbjsKLSAgICBmb3IgKGNudCA9IDA7IGNudCA8IGxlbjsgY250
KyspIHsKLSAgICAgICAgaGFzaDEgKz0gKGhhc2gxIDw8IDgpICsgc1tjbnRdOwotICAgIH0KLSAg
ICBoYXNoMSArPSAoaGFzaDEgPDwgKGxlbiAmIDMxKSk7Ci0KLSAgICAvLyBjb21wdXRlIHNlY29u
ZCBoYXNoICAgIAotICAgIGhhc2gyID0gbGVuOwotICAgIGZvciAoY250ID0gMDsgY250IDwgbGVu
OyBjbnQrKykgewotICAgICAgICBoYXNoMiA9ICgzNyAqIGhhc2gyKSBeIHNbY250XTsKLSAgICB9
Ci0KLSNpZmRlZiBfX0xQNjRfXwotICAgIHNucHJpbnRmKGJ1ZmZlciwgVW5pcXVlRmlsZVBhdGhT
aXplLCAiJS4ydS8lLjJ1LyUuMTB1LSUuMTB1LmNhY2hlIiwgKChoYXNoMSAmIDB4ZmYpID4+IDQp
LCAoKGhhc2gyICYgMHhmZikgPj4gNCksIGhhc2gxLCBoYXNoMik7Ci0jZWxzZQotICAgIHNucHJp
bnRmKGJ1ZmZlciwgVW5pcXVlRmlsZVBhdGhTaXplLCAiJS4ybHUvJS4ybHUvJS4xMGx1LSUuMTBs
dS5jYWNoZSIsICgoaGFzaDEgJiAweGZmKSA+PiA0KSwgKChoYXNoMiAmIDB4ZmYpID4+IDQpLCBo
YXNoMSwgaGFzaDIpOwotI2VuZGlmCi19Ci0KLS8vIFRoaXMgbWV0aG9kIG9mIGdldHRpbmcgYW4g
b2JqZWN0IGZyb20gdGhlIGZpbGVzeXN0ZW0gaXMgdGFrZW4gZnJvbSB0aGUgb2xkIAotLy8gV2Vi
S2l0IEljb24gRGF0YWJhc2UKLXN0YXRpYyBpZCBvYmplY3RGcm9tUGF0aEZvcktleShOU1N0cmlu
ZyAqZGF0YWJhc2VQYXRoLCBpZCBrZXkpCi17Ci0gICAgQVNTRVJUKGtleSk7Ci0gICAgaWQgcmVz
dWx0ID0gbmlsOwotCi0gICAgLy8gVXNlIHRoZSBrZXktPmZpbGVuYW1lIGhhc2hpbmcgdGhlIG9s
ZCBXZWJLaXQgSWNvbkRhdGFiYXNlIHVzZWQKLSAgICBjaGFyIHVuaXF1ZUtleVtVbmlxdWVGaWxl
UGF0aFNpemVdOyAgICAKLSAgICBsZWdhY3lJY29uRGF0YWJhc2VGaWxlUGF0aEZvcktleShrZXks
IHVuaXF1ZUtleSk7Ci0gICAgCi0gICAgLy8gR2V0IHRoZSBkYXRhIGZyb20gdGhpcyBmaWxlIGFu
ZCBzZXR1cCBmb3IgdGhlIHVuLWFyY2hpdmluZwotICAgIE5TU3RyaW5nICpmaWxlUGF0aCA9IFtb
TlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUAvJXMiLCBkYXRhYmFzZVBhdGgsIHVu
aXF1ZUtleV07Ci0gICAgTlNEYXRhICpkYXRhID0gW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQ29u
dGVudHNPZkZpbGU6ZmlsZVBhdGhdOwotICAgIE5TVW5hcmNoaXZlciAqdW5hcmNoaXZlciA9IG5p
bDsKLSAgICAKLSAgICBAdHJ5IHsKLSAgICAgICAgaWYgKGRhdGEpIHsKLSAgICAgICAgICAgIHVu
YXJjaGl2ZXIgPSBbW05TVW5hcmNoaXZlciBhbGxvY10gaW5pdEZvclJlYWRpbmdXaXRoRGF0YTpk
YXRhXTsKLSAgICAgICAgICAgIGlmICh1bmFyY2hpdmVyKSB7Ci0gICAgICAgICAgICAgICAgaWQg
ZmlsZUtleSA9IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdF07Ci0gICAgICAgICAgICAgICAgaWYg
KFtmaWxlS2V5IGlzRXF1YWw6a2V5XSkgewotICAgICAgICAgICAgICAgICAgICBpZCBvYmplY3Qg
PSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RdOwotICAgICAgICAgICAgICAgICAgICBpZiAob2Jq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBEZWNvZGVkIG9iamVjdHMgZ28gYXdh
eSB3aGVuIHRoZSB1bmFyY2hpdmVyIGRvZXMsIHNvIHdlIG5lZWQgdG8KLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIHJldGFpbiB0aGlzIHNvIHdlIGNhbiByZXR1cm4gaXQgdG8gb3VyIGNhbGxl
ci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFtbb2JqZWN0IHJldGFpbl0gYXV0
b3JlbGVhc2VdOwotICAgICAgICAgICAgICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgInJl
YWQgZGlzayBjYWNoZSBmaWxlIC0gJUAiLCBrZXkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBAY2F0Y2gg
KE5TRXhjZXB0aW9uICpsb2NhbEV4Y2VwdGlvbikgewotICAgICAgICBMT0coSWNvbkRhdGFiYXNl
LCAiY2Fubm90IHVuYXJjaGl2ZSBjYWNoZSBmaWxlIC0gJUAiLCBrZXkpOwotICAgICAgICByZXN1
bHQgPSBuaWw7Ci0gICAgfQotCi0gICAgW3VuYXJjaGl2ZXIgcmVsZWFzZV07Ci0gICAgW2RhdGEg
cmVsZWFzZV07Ci0gICAgW2ZpbGVQYXRoIHJlbGVhc2VdOwotICAgIAotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLXN0YXRpYyBOU0RhdGEqIGljb25EYXRhRnJvbVBhdGhGb3JJY29uVVJMKE5TU3Ry
aW5nICpkYXRhYmFzZVBhdGgsIE5TU3RyaW5nICppY29uVVJMU3RyaW5nKQotewotICAgIEFTU0VS
VChpY29uVVJMU3RyaW5nKTsKLSAgICBBU1NFUlQoZGF0YWJhc2VQYXRoKTsKLSAgICAKLSAgICBO
U0RhdGEgKmljb25EYXRhID0gb2JqZWN0RnJvbVBhdGhGb3JLZXkoZGF0YWJhc2VQYXRoLCBpY29u
VVJMU3RyaW5nKTsKLSAgICAKLSAgICBpZiAoKGlkKWljb25EYXRhID09IChpZClbTlNOdWxsIG51
bGxdKSAKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgCi0gICAgcmV0dXJuIGljb25EYXRh
OwotfQotCiAtIChOU1N0cmluZyAqKV9kYXRhYmFzZURpcmVjdG9yeQogewogICAgIE5TVXNlckRl
ZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107
CkBAIC01NjMsMTI0ICs0NzIsNiBAQCBAZW5kCiBAaW1wbGVtZW50YXRpb24gV2ViSWNvbkRhdGFi
YXNlUHJpdmF0ZQogQGVuZAogCi1AaW50ZXJmYWNlIFdlYkNvY29hVGhyZWFkaW5nRW5hYmxlciA6
IE5TT2JqZWN0IHsKLX0KLSsgKHZvaWQpZW5hYmxlVGhyZWFkaW5nOwotCi0tICh2b2lkKXRocmVh
ZEVuYWJsaW5nU2VsZWN0b3I6KGlkKWFyZzsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdlYkNv
Y29hVGhyZWFkaW5nRW5hYmxlcgotCi0tICh2b2lkKXRocmVhZEVuYWJsaW5nU2VsZWN0b3I6KGlk
KWFyZwotewotICAgIHJldHVybjsKLX0KLQotKyAodm9pZCllbmFibGVUaHJlYWRpbmcKLXsKLSAg
ICBXZWJDb2NvYVRocmVhZGluZ0VuYWJsZXIgKmVuYWJsZXIgPSBbW1dlYkNvY29hVGhyZWFkaW5n
RW5hYmxlciBhbGxvY10gaW5pdF07Ci0gICAgW05TVGhyZWFkIGRldGFjaE5ld1RocmVhZFNlbGVj
dG9yOkBzZWxlY3Rvcih0aHJlYWRFbmFibGluZ1NlbGVjdG9yOikgdG9UYXJnZXQ6ZW5hYmxlciB3
aXRoT2JqZWN0Om5pbF07Ci0gICAgW2VuYWJsZXIgcmVsZWFzZV07Ci19Ci0KLUBlbmQKLQotYm9v
bCBpbXBvcnRUb1dlYkNvcmVGb3JtYXQoKQotewotICAgIC8vIFNpbmNlIHRoaXMgaXMgcnVubmlu
ZyBvbiBhIHNlY29uZGFyeSBQT1NJWCB0aHJlYWQgYW5kIENvY29hIGNhbm5vdCBiZSB1c2VkIG11
bHRpdGhyZWFkZWQgdW5sZXNzIGFuIE5TVGhyZWFkIGhhcyBiZWVuIGRldGFjaGVkLAotICAgIC8v
IG1ha2Ugc3VyZSB0aGF0IGhhcHBlbnMgaGVyZSBmb3IgYWxsIFdlYktpdCBjbGllbnRzCi0gICAg
aWYgKCFbTlNUaHJlYWQgaXNNdWx0aVRocmVhZGVkXSkKLSAgICAgICAgW1dlYkNvY29hVGhyZWFk
aW5nRW5hYmxlciBlbmFibGVUaHJlYWRpbmddOwotICAgIEFTU0VSVChbTlNUaHJlYWQgaXNNdWx0
aVRocmVhZGVkXSk7ICAgIAotICAgIAotICAgIC8vIEdldCB0aGUgZGlyZWN0b3J5IHRoZSBvbGQg
aWNvbiBkYXRhYmFzZSAqc2hvdWxkKiBiZSBpbgotICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0
cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107Ci0gICAgTlNTdHJpbmcg
KmRhdGFiYXNlRGlyZWN0b3J5ID0gW2RlZmF1bHRzIG9iamVjdEZvcktleTpXZWJJY29uRGF0YWJh
c2VJbXBvcnREaXJlY3RvcnlEZWZhdWx0c0tleV07Ci0gICAgCi0gICAgaWYgKCFkYXRhYmFzZURp
cmVjdG9yeSkKLSAgICAgICAgZGF0YWJhc2VEaXJlY3RvcnkgPSBbZGVmYXVsdHMgb2JqZWN0Rm9y
S2V5OldlYkljb25EYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5XTsKLSAgICAgICAgCi0gICAg
aWYgKCFkYXRhYmFzZURpcmVjdG9yeSkgewotICAgICAgICBkYXRhYmFzZURpcmVjdG9yeSA9IFdl
Ykljb25EYXRhYmFzZVBhdGg7Ci0gICAgICAgIFtkZWZhdWx0cyBzZXRPYmplY3Q6ZGF0YWJhc2VE
aXJlY3RvcnkgZm9yS2V5OldlYkljb25EYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5XTsKLSAg
ICB9Ci0gICAgZGF0YWJhc2VEaXJlY3RvcnkgPSBbZGF0YWJhc2VEaXJlY3Rvcnkgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF07Ci0KLSAgICAvLyBXaXRoIHRoaXMgZGlyZWN0b3J5LCBnZXQg
dGhlIFBhZ2VVUkxUb0ljb25VUkwgbWFwIHRoYXQgd2FzIHNhdmVkIHRvIGRpc2sKLSAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICpwYWdlVVJMVG9JY29uVVJMID0gb2JqZWN0RnJvbVBhdGhGb3JLZXko
ZGF0YWJhc2VEaXJlY3RvcnksIFdlYlVSTFRvSWNvblVSTEtleSk7Ci0KLSAgICAvLyBJZiB0aGUg
cmV0cmlldmVkIG9iamVjdCB3YXMgbm90IGEgdmFsaWQgTlNNdXRhYmxlRGljdGlvbmFyeSwgdGhl
biB3ZSBoYXZlIG5vIHZhbGlkCi0gICAgLy8gaWNvbnMgdG8gaW1wb3J0Ci0gICAgaWYgKCFbcGFn
ZVVSTFRvSWNvblVSTCBpc0tpbmRPZkNsYXNzOltOU011dGFibGVEaWN0aW9uYXJ5IGNsYXNzXV0p
Ci0gICAgICAgIHBhZ2VVUkxUb0ljb25VUkwgPSBuaWw7Ci0gICAgCi0gICAgaWYgKCFwYWdlVVJM
VG9JY29uVVJMKSB7Ci0gICAgICAgIC8vIFdlIGZvdW5kIG5vIFNhZmFyaS0yLXN0eWxlIGljb24g
ZGF0YWJhc2UuIEJhaWwgb3V0IGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGVsZXRlIGV2ZXJ5dGhp
bmcKLSAgICAgICAgLy8gaW4gd2hhdGV2ZXIgZGlyZWN0b3J5IHdlIGVuZGVkIHVwIGxvb2tpbmcg
aW4hIFJldHVybiB0cnVlIHNvIHdlIHdvbid0IGJvdGhlciB0byBjaGVjayBhZ2Fpbi4KLSAgICAg
ICAgLy8gRklYTUU6IFdlIGNhbiBwcm9iYWJseSBkZWxldGUgYWxsIG9mIHRoZSBjb2RlIHRvIGNv
bnZlcnQgU2FmYXJpLTItc3R5bGUgaWNvbiBkYXRhYmFzZXMgbm93LgotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgTlNFbnVtZXJhdG9yICplbnVtZXJhdG9yID0gW3BhZ2VV
UkxUb0ljb25VUkwga2V5RW51bWVyYXRvcl07Ci0gICAgTlNTdHJpbmcgKnVybCwgKmljb25VUkw7
Ci0gICAgCi0gICAgLy8gRmlyc3QsIHdlJ2xsIGl0ZXJhdGUgdGhyb3VnaCB0aGUgUGFnZVVSTC0+
SWNvblVSTCBtYXAKLSAgICB3aGlsZSAoKHVybCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAh
PSBuaWwpIHsKLSAgICAgICAgaWNvblVSTCA9IFtwYWdlVVJMVG9JY29uVVJMIG9iamVjdEZvcktl
eTp1cmxdOwotICAgICAgICBpZiAoIWljb25VUkwpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgaWNvbkRhdGFiYXNlKCkuaW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoaWNvblVSTCwgdXJs
KTsKLSAgICAgICAgaWYgKGljb25EYXRhYmFzZSgpLnNob3VsZFN0b3BUaHJlYWRBY3Rpdml0eSgp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gICAgCi0KLSAgICAvLyBTZWNvbmQs
IHdlJ2xsIGdldCBhIGxpc3Qgb2YgdGhlIHVuaXF1ZSBJY29uVVJMcyB3ZSBoYXZlCi0gICAgTlNN
dXRhYmxlU2V0ICppY29uc09uRGlza1dpdGhVUkxzID0gW05TTXV0YWJsZVNldCBzZXRXaXRoQXJy
YXk6W3BhZ2VVUkxUb0ljb25VUkwgYWxsVmFsdWVzXV07Ci0gICAgZW51bWVyYXRvciA9IFtpY29u
c09uRGlza1dpdGhVUkxzIG9iamVjdEVudW1lcmF0b3JdOwotICAgIE5TRGF0YSAqaWNvbkRhdGE7
Ci0gICAgCi0gICAgLy8gQW5kIGl0ZXJhdGUgdGhyb3VnaCB0aGVtLCBhZGRpbmcgdGhlIGljb24g
ZGF0YSB0byB0aGUgbmV3IGljb24gZGF0YWJhc2UKLSAgICB3aGlsZSAoKHVybCA9IFtlbnVtZXJh
dG9yIG5leHRPYmplY3RdKSAhPSBuaWwpIHsKLSAgICAgICAgaWNvbkRhdGEgPSBpY29uRGF0YUZy
b21QYXRoRm9ySWNvblVSTChkYXRhYmFzZURpcmVjdG9yeSwgdXJsKTsKLSAgICAgICAgaWYgKGlj
b25EYXRhKQotICAgICAgICAgICAgaWNvbkRhdGFiYXNlKCkuaW1wb3J0SWNvbkRhdGFGb3JJY29u
VVJMKFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShpY29uRGF0YSksIHVybCk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgLy8gVGhpcyByZWFsbHkgKnNob3VsZG4ndCogaGFwcGVuLCBzbyBp
dCdkIGJlIGdvb2QgdG8gdHJhY2sgZG93biB3aHkgaXQgbWlnaHQgaGFwcGVuIGluIGEgZGVidWcg
YnVpbGQKLSAgICAgICAgICAgIC8vIGhvd2V2ZXIsIHdlIGRvIGtub3cgaG93IHRvIGhhbmRsZSBp
dCBncmFjZWZ1bGx5IGluIHJlbGVhc2UKLSAgICAgICAgICAgIExPR19FUlJPUigiJUAgaXMgbWFy
a2VkIGFzIGhhdmluZyBhbiBpY29uIG9uIGRpc2ssIGJ1dCB3ZSBjb3VsZG4ndCBnZXQgdGhlIGRh
dGEgZm9yIGl0IiwgdXJsKTsKLSAgICAgICAgICAgIGljb25EYXRhYmFzZSgpLmltcG9ydEljb25E
YXRhRm9ySWNvblVSTCgwLCB1cmwpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpY29uRGF0YWJh
c2UoKS5zaG91bGRTdG9wVGhyZWFkQWN0aXZpdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gICAgCi0gICAgLy8gQWZ0ZXIgd2UncmUgZG9uZSBpbXBvcnRpbmcgb2xkIHN0
eWxlIGljb25zIG92ZXIgdG8gd2ViY29yZSBpY29ucywgd2UgZGVsZXRlIHRoZSBlbnRpcmUgZGly
ZWN0b3J5IGhpZXJhcmNoeSAKLSAgICAvLyBmb3IgdGhlIG9sZCBpY29uIERCIChza2lwcGluZyB0
aGUgbmV3IGljb25EQiBpZiBpdCBpcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkpCi0gICAgTlNGaWxl
TWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07Ci0g
ICAgZW51bWVyYXRvciA9IFtbZmlsZU1hbmFnZXIgY29udGVudHNPZkRpcmVjdG9yeUF0UGF0aDpk
YXRhYmFzZURpcmVjdG9yeSBlcnJvcjpOVUxMXSBvYmplY3RFbnVtZXJhdG9yXTsKLQotICAgIE5T
U3RyaW5nICpkYXRhYmFzZUZpbGVuYW1lID0gSWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VG
aWxlbmFtZSgpOwotCi0gICAgQk9PTCBmb3VuZEljb25EQiA9IE5POwotICAgIE5TU3RyaW5nICpm
aWxlOwotICAgIHdoaWxlICgoZmlsZSA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwp
IHsKLSAgICAgICAgaWYgKFtmaWxlIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6ZGF0YWJhc2VGaWxl
bmFtZV0gPT0gTlNPcmRlcmVkU2FtZSkgewotICAgICAgICAgICAgZm91bmRJY29uREIgPSBZRVM7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBOU1N0cmluZyAqZmls
ZVBhdGggPSBbZGF0YWJhc2VEaXJlY3Rvcnkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50
OmZpbGVdOwotICAgICAgICBpZiAoIVtmaWxlTWFuYWdlciByZW1vdmVJdGVtQXRQYXRoOmZpbGVQ
YXRoIGVycm9yOk5VTExdKQotICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZGVsZXRl
ICVAIGZyb20gb2xkIGljb24gZGlyZWN0b3J5IiwgZmlsZVBhdGgpOwotICAgIH0KLSAgICAKLSAg
ICAvLyBJZiB0aGUgbmV3IGljb25EQiB3YXNuJ3QgaW4gdGhhdCBkaXJlY3RvcnksIHdlIGNhbiBk
ZWxldGUgdGhlIGRpcmVjdG9yeSBpdHNlbGYKLSAgICBpZiAoIWZvdW5kSWNvbkRCKQotICAgICAg
ICBybWRpcihbZGF0YWJhc2VEaXJlY3RvcnkgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXSk7Ci0g
ICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIE5TSW1hZ2UgKndlYkdldE5TSW1hZ2UoSW1hZ2Uq
IGltYWdlLCBOU1NpemUgc2l6ZSkKIHsKICAgICBBU1NFUlRfTUFJTl9USFJFQUQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlSW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlSW50ZXJuYWwuaAppbmRleCA2
YzBhZTUwLi40OThmYTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYklj
b25EYXRhYmFzZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2VJbnRlcm5hbC5oCkBAIC00Nyw1ICs0Nyw0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IC0gKHZvaWQpX3N0YXJ0VXBJY29uRGF0YWJhc2U7CiBAZW5kCiAKLWV4dGVybiBib29sIGltcG9y
dFRvV2ViQ29yZUZvcm1hdCgpOwogTlNJbWFnZSAqd2ViR2V0TlNJbWFnZShXZWJDb3JlOjpJbWFn
ZSosIE5TU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkljb25E
YXRhYmFzZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNl
UHJpdmF0ZS5oCmluZGV4IDhmYmE4OGIuLmU3YmRhZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViSWNvbkRhdGFiYXNlUHJpdmF0ZS5oCkBAIC0zNyw5ICszNyw2IEBACiAvLyBy
ZWxlYXNlSWNvbkZvclVSTDogaW4gcmVzcG9uc2UgdG8gdGhpcyBub3RpZmljYXRpb24uCiBleHRl
cm4gTlNTdHJpbmcgKldlYkljb25EYXRhYmFzZURpZFJlbW92ZUFsbEljb25zTm90aWZpY2F0aW9u
OwogCi0vLyBLZXkgdG8gc3RvcmUgdGhlIHBhdGggdG8gbG9vayBmb3Igb2xkIHN0eWxlIGljb25z
IGluIHRvIGNvbnZlcnQgdG8gdGhlIG5ldyBpY29uIGRiCi1leHRlcm4gTlNTdHJpbmcgKldlYklj
b25EYXRhYmFzZUltcG9ydERpcmVjdG9yeURlZmF1bHRzS2V5OwotCiBAaW50ZXJmYWNlIFdlYklj
b25EYXRhYmFzZSAoV2ViUGVuZGluZ1B1YmxpYykKIAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5oCmluZGV4
IDE3MDViMWEuLjk3YjE3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5oCkBAIC0zMSw3ICszMSw2IEBACiAK
IGNsYXNzIFdlYkljb25EYXRhYmFzZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpJY29uRGF0YWJh
c2VDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtSW1wb3J0KCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwo
Y29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQubW0KaW5kZXggZGIwYzc3ZS4u
ODVlYzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SWNvbkRhdGFiYXNlQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5tbQpAQCAtMzMsMTQgKzMzLDYgQEAKIAogI2lmIEVO
QUJMRShJQ09OREFUQUJBU0UpCiAKLWJvb2wgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpwZXJmb3Jt
SW1wb3J0KCkKLXsKLSAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NdIGluaXRdOwotICAgIGJvb2wgcmVzdWx0ID0gaW1wb3J0VG9XZWJDb3JlRm9y
bWF0KCk7Ci0gICAgW3Bvb2wgZHJhaW5dOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIHZvaWQg
V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRSZW1vdmVBbGxJY29ucygpCiB7CiAgICAgTlNBdXRv
cmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJLaXQuZXhwCmluZGV4IDA0OTAwODAuLjA1Y2IzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYktpdC5leHAKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0LmV4cApA
QCAtOTAsNyArOTAsNiBAQCBfV2ViSGlzdG9yeVNhdmVkTm90aWZpY2F0aW9uCiBfV2ViSWNvbkRh
dGFiYXNlRGlkQWRkSWNvbk5vdGlmaWNhdGlvbgogX1dlYkljb25EYXRhYmFzZURpZFJlbW92ZUFs
bEljb25zTm90aWZpY2F0aW9uCiBfV2ViSWNvbkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXkK
LV9XZWJJY29uRGF0YWJhc2VJbXBvcnREaXJlY3RvcnlEZWZhdWx0c0tleQogX1dlYkljb25MYXJn
ZVNpemUKIF9XZWJJY29uTWVkaXVtU2l6ZQogX1dlYkljb25Ob3RpZmljYXRpb25Vc2VySW5mb1VS
TEtleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCA3YWRlNGFkLi5kMzQxNDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIFNhZmFyaSAyIC0+IFNhZmFyaSAzIGljb24gZGF0
YWJhc2UgaW1wb3J0IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05ODExMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE51a2UgdGhlIHBlcmZvcm1JbXBvcnQoKSBJY29uRGF0YWJhc2VDbGllbnQgbWV0
aG9kLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50UXQuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0Lmg6CisgICAg
ICAgIChJY29uRGF0YWJhc2VDbGllbnRRdCk6CisKIDIwMTItMDktMjggIE1pa2hhaWwgUG96ZG55
YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgQ29kZSBpbnNp
ZGUgRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZSgpIGltcGxlbWVudGF0aW9ucyBj
YW4gYmUgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBXSyBwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmNwcAppbmRl
eCBiYWFlY2FlLi4wMWQ5ZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudFF0LmNwcApAQCAtNTMsMTEgKzUzLDYgQEAg
SWNvbkRhdGFiYXNlQ2xpZW50UXQ6On5JY29uRGF0YWJhc2VDbGllbnRRdCgpCiB7CiB9CiAKLWJv
b2wgSWNvbkRhdGFiYXNlQ2xpZW50UXQ6OnBlcmZvcm1JbXBvcnQoKQotewotICAgIHJldHVybiB0
cnVlOwotfQotCiB2b2lkIEljb25EYXRhYmFzZUNsaWVudFF0OjpkaWRSZW1vdmVBbGxJY29ucygp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ljb25E
YXRhYmFzZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ljb25E
YXRhYmFzZUNsaWVudFF0LmgKaW5kZXggNTllOTgzOS4uNmFjMjExOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50UXQuaApA
QCAtMzgsNyArMzgsNiBAQCBjbGFzcyBJY29uRGF0YWJhc2VDbGllbnRRdCA6IHB1YmxpYyBRT2Jq
ZWN0LCBwdWJsaWMgSWNvbkRhdGFiYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgSWNv
bkRhdGFiYXNlQ2xpZW50UXQqIGluc3RhbmNlKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9y
bUltcG9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJY29ucygpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IGJhNmE1YjUuLjRjZWMyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0wMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBTYWZhcmkgMiAtPiBTYWZhcmkgMyBpY29uIGRh
dGFiYXNlIGltcG9ydCBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTgxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOdWtlIHRoZSBwZXJmb3JtSW1wb3J0KCkgSWNvbkRhdGFiYXNlQ2xpZW50IG1l
dGhvZC4KKworICAgICAgICAqIFdlYkljb25EYXRhYmFzZS5jcHA6CisgICAgICAgICogV2ViSWNv
bkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2UpOgorCiAyMDEyLTA5LTI1ICBC
ZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzOTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJY29uRGF0YWJh
c2UuY3BwCmluZGV4IGNkZGM0MGQuLjI1ZDdlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViSWNvbkRh
dGFiYXNlLmNwcApAQCAtMzE2LDEyICszMTYsNiBAQCBIQklUTUFQIFdlYkljb25EYXRhYmFzZTo6
Z2V0T3JDcmVhdGVEZWZhdWx0SWNvbkJpdG1hcChMUFNJWkUgc2l6ZSkKIAogLy8gSWNvbkRhdGFi
YXNlQ2xpZW50CiAKLWJvb2wgV2ViSWNvbkRhdGFiYXNlOjpwZXJmb3JtSW1wb3J0KCkKLXsKLSAg
ICAvLyBXaW5kb3dzIGRvZXNuJ3QgZG8gYW55IG9sZC1zdHlsZSBkYXRhYmFzZSBpbXBvcnRpbmcu
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZW1vdmVB
bGxJY29ucygpCiB7CiAgICAgLy8gUXVldWVpbmcgdGhlIGVtcHR5IHN0cmluZyBpcyBhIHNwZWNp
YWwgd2F5IG9mIHNheWluZyAidGhpcyBxdWV1ZWQgbm90aWZpY2F0aW9uIGlzIHRoZSBkaWRSZW1v
dmVBbGxJY29ucyBub3RpZmljYXRpb24iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCmlu
ZGV4IGE4OTViODEuLjBmZGFiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYklj
b25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCkBA
IC0xMDQsNyArMTA0LDYgQEAgcHVibGljOgogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJP
T0wqIHJlc3VsdCk7CiAKICAgICAvLyBJY29uRGF0YWJhc2VDbGllbnQKLSAgICB2aXJ0dWFsIGJv
b2wgcGVyZm9ybUltcG9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJY29ucygp
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBXVEY6
OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwo
Y29uc3QgV1RGOjpTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiOWVmZDJhLi4xNzdkNWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgU2FmYXJpIDIgLT4gU2FmYXJpIDMg
aWNvbiBkYXRhYmFzZSBpbXBvcnQgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk4MTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTnVrZSB0aGUgcGVyZm9ybUltcG9ydCgpIEljb25EYXRhYmFzZUNs
aWVudCBtZXRob2QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5o
OgorICAgICAgICAoV2ViSWNvbkRhdGFiYXNlKToKKwogMjAxMi0xMC0wMSAgQ2hyaXN0b3BoZSBE
dW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIEZpeCBjb21waWxh
dGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklj
b25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmNwcAppbmRleCAwZmU2MzY5Li5lZDQ4MGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSWNvbkRhdGFiYXNlLmNwcApAQCAtMjM0LDExICsyMzQsNiBAQCB2b2lkIFdlYkljb25E
YXRhYmFzZTo6aW5pdGlhbGl6ZUljb25EYXRhYmFzZUNsaWVudChjb25zdCBXS0ljb25EYXRhYmFz
ZUNsaWVudCogYwogfQogCiAvLyBXZWJDb3JlOjpJY29uRGF0YWJhc2VDbGllbnQKLWJvb2wgV2Vi
SWNvbkRhdGFiYXNlOjpwZXJmb3JtSW1wb3J0KCkKLXsKLSAgICAvLyBXZWJLaXQyIGljb24gZGF0
YWJhc2UgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCBpbXBvcnRpbmcgYW55IG9sZCBpY29uIGRh
dGFiYXNlIGZvcm1hdHMuCi0gICAgcmV0dXJuIHRydWU7Ci19CiAKIHZvaWQgV2ViSWNvbkRhdGFi
YXNlOjpkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKaW5kZXggYjcyNTQw
NS4uYjA3YTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25E
YXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2Uu
aApAQCAtOTEsNyArOTEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplSWNvbkRhdGFi
YXNlQ2xpZW50KGNvbnN0IFdLSWNvbkRhdGFiYXNlQ2xpZW50Kik7CiAKICAgICAvLyBXZWJDb3Jl
OjpJY29uRGF0YWJhc2VDbGllbnQKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9ydCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmKTsK
</data>
<flag name="review"
          id="178997"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>