<?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>148611</bug_id>
          
          <creation_ts>2015-08-29 13:14:32 -0700</creation_ts>
          <short_desc>JSC property attributes should fit in a byte</short_desc>
          <delta_ts>2015-08-30 15:34: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>JavaScriptCore</component>
          <version>Other</version>
          <rep_platform>All</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>
          
          <blocked>148610</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1122003</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-29 13:14:32 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122004</commentid>
    <comment_count>1</comment_count>
      <attachid>260226</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-29 13:21:46 -0700</bug_when>
    <thetext>Created attachment 260226
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122005</commentid>
    <comment_count>2</comment_count>
      <attachid>260226</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-29 13:38:04 -0700</bug_when>
    <thetext>Comment on attachment 260226
the patch

Nope, this doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122018</commentid>
    <comment_count>3</comment_count>
      <attachid>260232</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-29 21:02:08 -0700</bug_when>
    <thetext>Created attachment 260232
a different approach

Not yet ready for review though.  Just seeing if EWS is happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122020</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-29 21:03:55 -0700</bug_when>
    <thetext>Attachment 260232 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:43:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:47:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122035</commentid>
    <comment_count>5</comment_count>
      <attachid>260236</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-29 21:59:18 -0700</bug_when>
    <thetext>Created attachment 260236
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122036</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-29 22:01:29 -0700</bug_when>
    <thetext>Attachment 260236 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:43:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:47:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:48:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122039</commentid>
    <comment_count>7</comment_count>
      <attachid>260237</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-29 22:38:23 -0700</bug_when>
    <thetext>Created attachment 260237
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122040</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-29 22:40:47 -0700</bug_when>
    <thetext>Attachment 260237 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:43:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:47:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/PropertySlot.h:48:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122062</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-08-30 10:26:54 -0700</bug_when>
    <thetext>Is there any reason to keep the static hashtable specific attributes in the Attribute enum anymore? Should we instead have HashTableValue have two fields, m_attributes (of type Attributes) which contains the JSObject attributes and a new m_staticAttributes (awful name) which has the static hashtable specific values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122063</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-30 10:36:30 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is there any reason to keep the static hashtable specific attributes in the
&gt; Attribute enum anymore? Should we instead have HashTableValue have two
&gt; fields, m_attributes (of type Attributes) which contains the JSObject
&gt; attributes and a new m_staticAttributes (awful name) which has the static
&gt; hashtable specific values?

I think that might be good follow-up change. The benefit of my approach is that it is a much smaller change, since I don&apos;t have to touch the code generators that use the static hash table attributed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122081</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-30 15:34:34 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/189160</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260226</attachid>
            <date>2015-08-29 13:21:46 -0700</date>
            <delta_ts>2015-08-29 21:02:08 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>5160</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MTUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE1LTA4LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SlNDIHByb3BlcnR5IGF0dHJpYnV0ZXMgc2hvdWxkIGZpdCBpbiBhIGJ5dGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODYxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGRvIHNvbWUg
b3RoZXIgdXNlZnVsIHRoaW5ncyB3aXRoIHByb3BlcnRpZXMsIHdlIG5lZWQgc29tZSBtb3JlIHJv
b20gaW4KKyAgICAgICAgUHJvcGVydHlNYXBFbnRyeS4gU28sIEkgbWFkZSBhdHRyaWJ1dGVzIHRh
a2UgYSBieXRlLiBUbyBkbyB0aGlzLCBJIG5lZWRlZCB0byByZW1vdmUgYW4gb2xkIHVudXNlZAor
ICAgICAgICBhdHRyaWJ1dGUsIGNhbGxlZCBDb25zdGFudEludGVnZXIuCisKKyAgICAgICAgKiBy
dW50aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlNDOjpIYXNoVGFibGVWYWx1ZTo6YWNjZXNzb3JH
ZXR0ZXIpOgorICAgICAgICAoSlNDOjpIYXNoVGFibGVWYWx1ZTo6YWNjZXNzb3JTZXR0ZXIpOgor
ICAgICAgICAoSlNDOjpIYXNoVGFibGVWYWx1ZTo6bGV4ZXJWYWx1ZSk6CisgICAgICAgIChKU0M6
OmdldFN0YXRpY1Byb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1ZhbHVlU2xv
dCk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydGllcyk6CisgICAgICAgIChKU0M6
Okhhc2hUYWJsZVZhbHVlOjpjb25zdGFudEludGVnZXIpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAg
ICAgICAgKEpTQzo6UHJvcGVydHlNYXBFbnRyeTo6UHJvcGVydHlNYXBFbnRyeSk6CisKIDIwMTUt
MDgtMjggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODkxMzYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Mb29rdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Mb29rdXAuaAkocmV2aXNpb24gMTg5MTIyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDggKzY2LDYgQEAg
c3RydWN0IEhhc2hUYWJsZVZhbHVlIHsKICAgICBOYXRpdmVGdW5jdGlvbiBhY2Nlc3NvckdldHRl
cigpIGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWUxKTsgfQogICAgIE5hdGl2ZUZ1bmN0
aW9uIGFjY2Vzc29yU2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNz
b3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZTIpOyB9
CiAKLSAgICBpbnRwdHJfdCBjb25zdGFudEludGVnZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJp
YnV0ZXMgJiBDb25zdGFudEludGVnZXIpOyByZXR1cm4gbV92YWx1ZTE7IH0KLQogICAgIGludHB0
cl90IGxleGVyVmFsdWUoKSBjb25zdCB7IEFTU0VSVCghbV9hdHRyaWJ1dGVzKTsgcmV0dXJuIG1f
dmFsdWUxOyB9CiB9OwogCkBAIC0xODcsMTEgKzE4NSw2IEBAIGlubGluZSBib29sIGdldFN0YXRp
Y1Byb3BlcnR5U2xvdChFeGVjU3QKICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEJ1aWx0
aW5PckZ1bmN0aW9uT3JBY2Nlc3NvcikKICAgICAgICAgcmV0dXJuIHNldFVwU3RhdGljRnVuY3Rp
b25TbG90KGV4ZWMsIGVudHJ5LCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogCi0gICAg
aWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDb25zdGFudEludGVnZXIpIHsKLSAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqLCBlbnRyeS0+YXR0cmlidXRlcygpLCBqc051bWJlcihlbnRyeS0+
Y29uc3RhbnRJbnRlZ2VyKCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCiAgICAg
c2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iaiwgZW50cnktPmF0dHJpYnV0ZXMoKSwgZW50
cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjI4LDExICsy
MjEsNiBAQCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNWYWx1ZVNsb3QoRXhlY1N0YXRlCiAKICAgICBB
U1NFUlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29y
KSk7CiAKLSAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIENvbnN0YW50SW50ZWdlcikgewot
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1dGVzKCksIGpzTnVt
YmVyKGVudHJ5LT5jb25zdGFudEludGVnZXIoKSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9Ci0KICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqLCBlbnRyeS0+YXR0cmli
dXRlcygpLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0yODksMTEgKzI3Nyw2IEBAIGlubGluZSB2b2lkIHJlaWZ5U3RhdGljUHJvcGVydGllcyhWTSYg
dm0KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHZhbHVl
LmF0dHJpYnV0ZXMoKSAmIENvbnN0YW50SW50ZWdlcikgewotICAgICAgICAgICAgdGhpc09iai5w
dXREaXJlY3Qodm0sIHByb3BlcnR5TmFtZSwganNOdW1iZXIodmFsdWUuY29uc3RhbnRJbnRlZ2Vy
KCkpLCB2YWx1ZS5hdHRyaWJ1dGVzKCkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IH0KLQogICAgICAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgQWNjZXNzb3IpIHsKICAgICAg
ICAgICAgIHJlaWZ5U3RhdGljQWNjZXNzb3Iodm0sIHZhbHVlLCB0aGlzT2JqLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICAgICAgY29udGludWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAkocmV2aXNpb24gMTg5MTIyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDEwICs0NCw5IEBAIGVudW0gQXR0cmlidXRlIHsKICAgICBBY2Nlc3NvciAgICAgICAgICA9IDEg
PDwgNSwgIC8vIHByb3BlcnR5IGlzIGEgZ2V0dGVyL3NldHRlcgogICAgIEN1c3RvbUFjY2Vzc29y
ICAgID0gMSA8PCA2LAogICAgIEJ1aWx0aW4gICAgICAgICAgID0gMSA8PCA3LCAvLyBwcm9wZXJ0
eSBpcyBhIGJ1aWx0aW4gZnVuY3Rpb24gLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMK
LSAgICBDb25zdGFudEludGVnZXIgICA9IDEgPDwgOCwgLy8gcHJvcGVydHkgaXMgYSBjb25zdGFu
dCBpbnRlZ2VyIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9y
RnVuY3Rpb24gPSBCdWlsdGluIHwgRnVuY3Rpb24sIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3Rh
dGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3IgPSBCdWlsdGlu
IHwgRnVuY3Rpb24gfCBBY2Nlc3NvciwgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFz
aHRhYmxlcwotICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yQ29uc3RhbnQgPSBCdWls
dGluIHwgRnVuY3Rpb24gfCBBY2Nlc3NvciB8IENvbnN0YW50SW50ZWdlciwgLy8gaGVscGVyIG9u
bHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nl
c3Nvck9yQ29uc3RhbnQgPSBCdWlsdGluIHwgRnVuY3Rpb24gfCBBY2Nlc3NvciwgLy8gaGVscGVy
IG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogfTsKIAogY2xhc3MgUHJvcGVydHlTbG90
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZp
c2lvbiAxODkxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQg
b3V0T2ZMaW5lR3Jvd3RoRmFjCiBzdHJ1Y3QgUHJvcGVydHlNYXBFbnRyeSB7CiAgICAgVW5pcXVl
ZFN0cmluZ0ltcGwqIGtleTsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7Ci0gICAgdW5zaWdu
ZWQgYXR0cmlidXRlczsKKyAgICB1aW50OF90IGF0dHJpYnV0ZXM7CiAKICAgICBQcm9wZXJ0eU1h
cEVudHJ5KCkKICAgICAgICAgOiBrZXkobnVsbHB0cikKQEAgLTkyLDggKzkyLDkgQEAgc3RydWN0
IFByb3BlcnR5TWFwRW50cnkgewogICAgIFByb3BlcnR5TWFwRW50cnkoVW5pcXVlZFN0cmluZ0lt
cGwqIGtleSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAg
ICAgICA6IGtleShrZXkpCiAgICAgICAgICwgb2Zmc2V0KG9mZnNldCkKLSAgICAgICAgLCBhdHRy
aWJ1dGVzKGF0dHJpYnV0ZXMpCisgICAgICAgICwgYXR0cmlidXRlcyhzdGF0aWNfY2FzdDx1aW50
OF90PihhdHRyaWJ1dGVzKSkKICAgICB7CisgICAgICAgIEFTU0VSVCh0aGlzLT5hdHRyaWJ1dGVz
ID09IGF0dHJpYnV0ZXMpOwogICAgIH0KIH07CiAK
</data>
<flag name="review"
          id="285422"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260232</attachid>
            <date>2015-08-29 21:02:08 -0700</date>
            <delta_ts>2015-08-29 21:59:18 -0700</delta_ts>
            <desc>a different approach</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>26326</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUyLDcgKzM1Miw3IEBAIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogI2VuZGlmCiAKICAgICBtX3BhcnNlSW50
RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZt
LnByb3BlcnR5TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJbnQsIE5v
SW50cmluc2ljKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtIHwg
RnVuY3Rpb24pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wYXJzZUludCwgbV9wYXJzZUludEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSk7CiAK
ICNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKIG1fICMjIGxvd2Vy
TmFtZSAjIyBQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7IFwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMTg5MTIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzUs
NyArNzUsNiBAQCBDT01QSUxFX0FTU0VSVChOb25lIDwgRmlyc3RJbnRlcm5hbEF0dHJpCiBDT01Q
SUxFX0FTU0VSVChSZWFkT25seSA8IEZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUsIFJlYWRPbmx5X2lz
X2JlbG93X0ZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUpOwogQ09NUElMRV9BU1NFUlQoRG9udEVudW0g
PCBGaXJzdEludGVybmFsQXR0cmlidXRlLCBEb250RW51bV9pc19iZWxvd19GaXJzdEludGVybmFs
QXR0cmlidXRlKTsKIENPTVBJTEVfQVNTRVJUKERvbnREZWxldGUgPCBGaXJzdEludGVybmFsQXR0
cmlidXRlLCBEb250RGVsZXRlX2lzX2JlbG93X0ZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUpOwotQ09N
UElMRV9BU1NFUlQoRnVuY3Rpb24gPCBGaXJzdEludGVybmFsQXR0cmlidXRlLCBGdW5jdGlvbl9p
c19iZWxvd19GaXJzdEludGVybmFsQXR0cmlidXRlKTsKIENPTVBJTEVfQVNTRVJUKEFjY2Vzc29y
IDwgRmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSwgQWNjZXNzb3JfaXNfYmVsb3dfRmlyc3RJbnRlcm5h
bEF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTRmluYWxPYmplY3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTU2LDEx
ICs1NiwxMSBAQCBib29sIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkg
JiBCdWlsdGluKQotICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9u
KHZtLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBlbnRyeS0+YnVpbHRp
bkdlbmVyYXRvcigpKHZtKSwgZW50cnktPmF0dHJpYnV0ZXMoKSk7CisgICAgICAgICAgICB0aGlz
T2JqLT5wdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIHRoaXNPYmotPmdsb2JhbE9iamVjdCgp
LCBwcm9wZXJ0eU5hbWUsIGVudHJ5LT5idWlsdGluR2VuZXJhdG9yKCkodm0pLCBhdHRyaWJ1dGVz
Rm9yU3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpKTsKICAgICAgICAgZWxzZSBpZiAoZW50
cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSB7CiAgICAgICAgICAgICB0aGlzT2JqLT5wdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbigKICAgICAgICAgICAgICAgICB2bSwgdGhpc09iai0+Z2xvYmFs
T2JqZWN0KCksIHByb3BlcnR5TmFtZSwgZW50cnktPmZ1bmN0aW9uTGVuZ3RoKCksCi0gICAgICAg
ICAgICAgICAgZW50cnktPmZ1bmN0aW9uKCksIGVudHJ5LT5pbnRyaW5zaWMoKSwgZW50cnktPmF0
dHJpYnV0ZXMoKSk7CisgICAgICAgICAgICAgICAgZW50cnktPmZ1bmN0aW9uKCksIGVudHJ5LT5p
bnRyaW5zaWMoKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNBY2Nlc3Nvcik7CiAgICAg
ICAgICAgICByZWlmeVN0YXRpY0FjY2Vzc29yKHZtLCAqZW50cnksICp0aGlzT2JqLCBwcm9wZXJ0
eU5hbWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgJKHJldmlz
aW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNQ
cm9wZXJ0eVNsb3QoRXhlY1N0CiAgICAgICAgIHJldHVybiBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xv
dChleGVjLCBlbnRyeSwgdGhpc09iaiwgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgIGlmIChl
bnRyeS0+YXR0cmlidXRlcygpICYgQ29uc3RhbnRJbnRlZ2VyKSB7Ci0gICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iaiwgZW50cnktPmF0dHJpYnV0ZXMoKSwganNOdW1iZXIoZW50cnktPmNvbnN0
YW50SW50ZWdlcigpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iaiwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwganNOdW1iZXIoZW50cnktPmNvbnN0
YW50SW50ZWdlcigpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHNsb3Qu
c2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1dGVzKCksIGVudHJ5LT5w
cm9wZXJ0eUdldHRlcigpKTsKKyAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqLCBh
dHRyaWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpLCBlbnRyeS0+cHJvcGVy
dHlHZXR0ZXIoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIyOSwxMSArMjI5LDExIEBA
IGlubGluZSBib29sIGdldFN0YXRpY1ZhbHVlU2xvdChFeGVjU3RhdGUKICAgICBBU1NFUlQoIShl
bnRyeS0+YXR0cmlidXRlcygpICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yKSk7CiAKICAg
ICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIENvbnN0YW50SW50ZWdlcikgewotICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1dGVzKCksIGpzTnVtYmVyKGVudHJ5
LT5jb25zdGFudEludGVnZXIoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSksIGpzTnVtYmVyKGVudHJ5
LT5jb25zdGFudEludGVnZXIoKSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqLCBlbnRyeS0+YXR0cmlidXRlcygpLCBl
bnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CisgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhp
c09iaiwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwgZW50cnkt
PnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yNzksMTggKzI3
OSwxOSBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRpY1Byb3BlcnRpZXMoVk0mIHZtCiAKICAgICAg
ICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHZhbHVlLm1fa2V5KSwgc3RybGVuKHZhbHVl
Lm1fa2V5KSk7CiAgICAgICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBCdWlsdGluKSB7Ci0g
ICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgdGhpc09iai5n
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZS5idWlsdGluR2VuZXJhdG9yKCkodm0p
LCB2YWx1ZS5hdHRyaWJ1dGVzKCkpOworICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3RCdWls
dGluRnVuY3Rpb24odm0sIHRoaXNPYmouZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgdmFs
dWUuYnVpbHRpbkdlbmVyYXRvcigpKHZtKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5h
dHRyaWJ1dGVzKCkpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSB7Ci0gICAgICAgICAgICB0aGlz
T2JqLnB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzT2JqLmdsb2JhbE9iamVjdCgpLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLmZ1bmN0aW9uTGVuZ3RoKCksCi0gICAgICAgICAgICAgICAgdmFs
dWUuZnVuY3Rpb24oKSwgdmFsdWUuaW50cmluc2ljKCksIHZhbHVlLmF0dHJpYnV0ZXMoKSk7Cisg
ICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKAorICAgICAgICAgICAg
ICAgIHZtLCB0aGlzT2JqLmdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLmZ1bmN0
aW9uTGVuZ3RoKCksCisgICAgICAgICAgICAgICAgdmFsdWUuZnVuY3Rpb24oKSwgdmFsdWUuaW50
cmluc2ljKCksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh2YWx1ZS5hdHRy
aWJ1dGVzKCkgJiBDb25zdGFudEludGVnZXIpIHsKLSAgICAgICAgICAgIHRoaXNPYmoucHV0RGly
ZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIGpzTnVtYmVyKHZhbHVlLmNvbnN0YW50SW50ZWdlcigpKSwg
dmFsdWUuYXR0cmlidXRlcygpKTsKKyAgICAgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0KHZtLCBw
cm9wZXJ0eU5hbWUsIGpzTnVtYmVyKHZhbHVlLmNvbnN0YW50SW50ZWdlcigpKSwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKQEAgLTMwMCw3ICszMDEsNyBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRp
Y1Byb3BlcnRpZXMoVk0mIHZtCiAgICAgICAgIH0KIAogICAgICAgICBDdXN0b21HZXR0ZXJTZXR0
ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCB2
YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1ZS5wcm9wZXJ0eVB1dHRlcigpKTsKLSAgICAgICAg
dGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBjdXN0b21H
ZXR0ZXJTZXR0ZXIsIHZhbHVlLmF0dHJpYnV0ZXMoKSk7CisgICAgICAgIHRoaXNPYmoucHV0RGly
ZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBh
dHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogICAgIH0KIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAJKHJl
dmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQg
KEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdo
dCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTk1LDQxICs5NSw0MSBAQCB2
b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgCiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiU1FSVDFfMiIp
LCBqc051bWJlcihzcXJ0KDAuNSkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7
CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCAiU1FSVDIiKSwganNOdW1iZXIoc3FydCgyLjApKSwgRG9udERlbGV0ZSB8IERvbnRF
bnVtIHwgUmVhZE9ubHkpOwogCi0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJh
bnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFi
cyIpLCAxLCBtYXRoUHJvdG9GdW5jQWJzLCBBYnNJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rp
b24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhY29zIiksIDEsIG1hdGhQ
cm90b0Z1bmNBQ29zLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFzaW4iKSwgMSwgbWF0aFByb3RvRnVuY0FTaW4s
IE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAiYXRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jQVRhbiwgTm9JbnRyaW5zaWMs
IERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJhY29zaCIpLCAxLCBtYXRoUHJvdG9GdW5jQUNvc2gsIE5vSW50cmluc2ljLCBEb250RW51bSB8
IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXNpbmgiKSwg
MSwgbWF0aFByb3RvRnVuY0FTaW5oLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7
Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImF0YW5oIiksIDEsIG1hdGhQcm90
b0Z1bmNBVGFuaCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhdGFuMiIpLCAyLCBtYXRoUHJvdG9GdW5jQVRhbjIs
IE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAiY2JydCIpLCAxLCBtYXRoUHJvdG9GdW5jQ2JydCwgTm9JbnRyaW5zaWMs
IERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJjZWlsIiksIDEsIG1hdGhQcm90b0Z1bmNDZWlsLCBDZWlsSW50cmluc2ljLCBEb250RW51bSB8
IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2x6MzIiKSwg
MSwgbWF0aFByb3RvRnVuY0NsejMyLCBDbHozMkludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlv
bik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNvcyIpLCAxLCBtYXRoUHJv
dG9GdW5jQ29zLCBDb3NJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjb3NoIiksIDEsIG1hdGhQcm90b0Z1bmNDb3NoLCBO
b0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImV4cCIpLCAxLCBtYXRoUHJvdG9GdW5jRXhwLCBFeHBJbnRyaW5zaWMsIERv
bnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJl
eHBtMSIpLCAxLCBtYXRoUHJvdG9GdW5jRXhwbTEsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1
bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZt
LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmxvb3IiKSwgMSwg
bWF0aFByb3RvRnVuY0Zsb29yLCBGbG9vckludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7
Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZyb3VuZCIpLCAxLCBtYXRoUHJv
dG9GdW5jRnJvdW5kLCBGUm91bmRJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJoeXBvdCIpLCAyLCBtYXRoUHJvdG9GdW5j
SHlwb3QsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nIiksIDEsIG1hdGhQcm90b0Z1bmNMb2csIExvZ0ludHJp
bnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImxvZzEwIiksIDEsIG1hdGhQcm90b0Z1bmNMb2cxMCwgTm9JbnRyaW5zaWMsIERvbnRF
bnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5z
aXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJsb2cx
cCIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nMXAsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0
aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nMiIpLCAxLCBtYXRo
UHJvdG9GdW5jTG9nMiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJtYXgiKSwgMiwgbWF0aFByb3RvRnVuY01heCwg
TWF4SW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAibWluIiksIDIsIG1hdGhQcm90b0Z1bmNNaW4sIE1pbkludHJpbnNpYywg
RG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
InBvdyIpLCAyLCBtYXRoUHJvdG9GdW5jUG93LCBQb3dJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVu
Y3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0s
IGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJyYW5kb20iKSwgMCwg
bWF0aFByb3RvRnVuY1JhbmRvbSwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwot
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJyb3VuZCIpLCAxLCBtYXRoUHJvdG9G
dW5jUm91bmQsIFJvdW5kSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2lnbiIpLCAxLCBtYXRoUHJvdG9GdW5jU2lnbiwg
Tm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1
bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJzaW4iKSwgMSwgbWF0aFByb3RvRnVuY1NpbiwgU2luSW50cmluc2ljLCBE
b250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
c2luaCIpLCAxLCBtYXRoUHJvdG9GdW5jU2luaCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVu
Y3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0s
IGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzcXJ0IiksIDEsIG1h
dGhQcm90b0Z1bmNTcXJ0LCBTcXJ0SW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAg
ICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidGFuIiksIDEsIG1hdGhQcm90b0Z1bmNU
YW4sIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRp
dmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCAidGFuaCIpLCAxLCBtYXRoUHJvdG9GdW5jVGFuaCwgTm9JbnRyaW5z
aWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sICJ0cnVuYyIpLCAxLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIE5vSW50cmluc2ljLCBEb250RW51
bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaW11bCIp
LCAyLCBtYXRoUHJvdG9GdW5jSU11bCwgSU11bEludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlv
bik7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFicyIpLCAxLCBtYXRoUHJv
dG9GdW5jQWJzLCBBYnNJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAiYWNvcyIpLCAxLCBtYXRoUHJvdG9GdW5jQUNvcywgTm9JbnRyaW5zaWMs
IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXNpbiIpLCAx
LCBtYXRoUHJvdG9GdW5jQVNpbiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jQVRhbiwgTm9J
bnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
YWNvc2giKSwgMSwgbWF0aFByb3RvRnVuY0FDb3NoLCBOb0ludHJpbnNpYywgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhc2luaCIpLCAxLCBtYXRoUHJvdG9G
dW5jQVNpbmgsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImF0YW5oIiksIDEsIG1hdGhQcm90b0Z1bmNBVGFuaCwgTm9JbnRyaW5zaWMs
IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXRhbjIiKSwg
MiwgbWF0aFByb3RvRnVuY0FUYW4yLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjYnJ0IiksIDEsIG1hdGhQcm90b0Z1bmNDYnJ0LCBO
b0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJjZWlsIiksIDEsIG1hdGhQcm90b0Z1bmNDZWlsLCBDZWlsSW50cmluc2ljLCBEb250RW51bSk7
CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNsejMyIiksIDEsIG1hdGhQcm90
b0Z1bmNDbHozMiwgQ2x6MzJJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRp
dmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCAiY29zIiksIDEsIG1hdGhQcm90b0Z1bmNDb3MsIENvc0ludHJpbnNp
YywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjb3NoIiks
IDEsIG1hdGhQcm90b0Z1bmNDb3NoLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJleHAiKSwgMSwgbWF0aFByb3RvRnVuY0V4cCwgRXhw
SW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
ImV4cG0xIiksIDEsIG1hdGhQcm90b0Z1bmNFeHBtMSwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsK
KyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmxvb3IiKSwgMSwgbWF0aFByb3Rv
RnVuY0Zsb29yLCBGbG9vckludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJmcm91bmQiKSwgMSwgbWF0aFByb3RvRnVuY0Zyb3VuZCwgRlJvdW5k
SW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
Imh5cG90IiksIDIsIG1hdGhQcm90b0Z1bmNIeXBvdCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsK
KyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nIiksIDEsIG1hdGhQcm90b0Z1
bmNMb2csIExvZ0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJsb2cxMCIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nMTAsIE5vSW50cmluc2ljLCBE
b250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImxvZzFwIiksIDEs
IG1hdGhQcm90b0Z1bmNMb2cxcCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nMiIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nMiwgTm9J
bnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
bWF4IiksIDIsIG1hdGhQcm90b0Z1bmNNYXgsIE1heEludHJpbnNpYywgRG9udEVudW0pOworICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJtaW4iKSwgMiwgbWF0aFByb3RvRnVuY01p
biwgTWluSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgInBvdyIpLCAyLCBtYXRoUHJvdG9GdW5jUG93LCBQb3dJbnRyaW5zaWMsIERvbnRFbnVt
KTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicmFuZG9tIiksIDAsIG1hdGhQ
cm90b0Z1bmNSYW5kb20sIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgInJvdW5kIiksIDEsIG1hdGhQcm90b0Z1bmNSb3VuZCwgUm91bmRJ
bnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
c2lnbiIpLCAxLCBtYXRoUHJvdG9GdW5jU2lnbiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAg
ICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2luIiksIDEsIG1hdGhQcm90b0Z1bmNT
aW4sIFNpbkludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJzaW5oIiksIDEsIG1hdGhQcm90b0Z1bmNTaW5oLCBOb0ludHJpbnNpYywgRG9udEVu
dW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzcXJ0IiksIDEsIG1hdGhQ
cm90b0Z1bmNTcXJ0LCBTcXJ0SW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgInRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jVGFuLCBOb0ludHJpbnNp
YywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ0YW5oIiks
IDEsIG1hdGhQcm90b0Z1bmNUYW5oLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ0cnVuYyIpLCAxLCBtYXRoUHJvdG9GdW5jVHJ1bmMs
IE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgImltdWwiKSwgMiwgbWF0aFByb3RvRnVuY0lNdWwsIElNdWxJbnRyaW5zaWMsIERvbnRFbnVt
KTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTg5MTIy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5
OTktMjAwMCwyMDAzIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNjgsMTIgKzY4LDEyIEBAIHZv
aWQgTnVtYmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFYKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJQT1NJVElWRV9J
TkZJTklUWSIpLCBqc0RvdWJsZU51bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CiAgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiTmFO
IiksIGpzTmFOKCksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIAotICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNGaW5pdGUi
KSwgMSwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNGaW5pdGUsIE5vSW50cmluc2ljLCBEb250RW51
bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImlzSW50ZWdlciIpLCAxLCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVn
ZXIsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRp
dmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImlzTmFOIiksIDEsIG51bWJlckNv
bnN0cnVjdG9yRnVuY0lzTmFOLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0g
ICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc1Nh
ZmVJbnRlZ2VyIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIsIE5vSW50
cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlv
bldpdGhvdXRUcmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInBhcnNlRmxvYXQiKSwgMSwgZ2xvYmFsRnVuY1Bh
cnNlRmxvYXQsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJwYXJz
ZUludCIpLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLT5wYXJzZUludEZ1bmN0aW9u
KCksIERvbnRFbnVtIHwgRnVuY3Rpb24pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNGaW5pdGUiKSwgMSwgbnVtYmVyQ29uc3RydWN0b3JG
dW5jSXNGaW5pdGUsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZl
RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ludGVnZXIiKSwgMSwgbnVtYmVy
Q29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNOYU4iKSwg
MSwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNOYU4sIE5vSW50cmluc2ljLCBEb250RW51bSk7Cisg
ICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc1Nh
ZmVJbnRlZ2VyIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIsIE5vSW50
cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJh
bnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJwYXJzZUZsb2F0IiksIDEsIGdsb2JhbEZ1bmNQYXJzZUZsb2F0LCBO
b0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInBhcnNlSW50IiksIG51bWJlclByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCktPnBhcnNlSW50RnVuY3Rpb24oKSwgRG9udEVudW0pOwogfQogCiAv
LyBFQ01BIDE1LjcuMQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlTbG90LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlTbG90LmgJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNiArNDAsMjQgQEAg
ZW51bSBBdHRyaWJ1dGUgewogICAgIFJlYWRPbmx5ICAgICAgICAgID0gMSA8PCAxLCAgLy8gcHJv
cGVydHkgY2FuIGJlIG9ubHkgcmVhZCwgbm90IHdyaXR0ZW4KICAgICBEb250RW51bSAgICAgICAg
ICA9IDEgPDwgMiwgIC8vIHByb3BlcnR5IGRvZXNuJ3QgYXBwZWFyIGluIChmb3IgLi4gaW4gLi4p
CiAgICAgRG9udERlbGV0ZSAgICAgICAgPSAxIDw8IDMsICAvLyBwcm9wZXJ0eSBjYW4ndCBiZSBk
ZWxldGVkCi0gICAgRnVuY3Rpb24gICAgICAgICAgPSAxIDw8IDQsICAvLyBwcm9wZXJ0eSBpcyBh
IGZ1bmN0aW9uIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCi0gICAgQWNjZXNzb3Ig
ICAgICAgICAgPSAxIDw8IDUsICAvLyBwcm9wZXJ0eSBpcyBhIGdldHRlci9zZXR0ZXIKLSAgICBD
dXN0b21BY2Nlc3NvciAgICA9IDEgPDwgNiwKLSAgICBCdWlsdGluICAgICAgICAgICA9IDEgPDwg
NywgLy8gcHJvcGVydHkgaXMgYSBidWlsdGluIGZ1bmN0aW9uIC0gb25seSB1c2VkIGJ5IHN0YXRp
YyBoYXNodGFibGVzCi0gICAgQ29uc3RhbnRJbnRlZ2VyICAgPSAxIDw8IDgsIC8vIHByb3BlcnR5
IGlzIGEgY29uc3RhbnQgaW50ZWdlciAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwor
ICAgIEFjY2Vzc29yICAgICAgICAgID0gMSA8PCA0LCAgLy8gcHJvcGVydHkgaXMgYSBnZXR0ZXIv
c2V0dGVyCisgICAgQ3VzdG9tQWNjZXNzb3IgICAgPSAxIDw8IDUsCisKKyAgICAvLyBUaGluZ3Mg
dGhhdCBhcmUgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcyBhcmUgbm90IGluIHRoZSBieXRlLgor
ICAgIEZ1bmN0aW9uICAgICAgICAgID0gMSA8PCA4LCAgLy8gcHJvcGVydHkgaXMgYSBmdW5jdGlv
biAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIEJ1aWx0aW4gICAgICAgICAg
ID0gMSA8PCA5LCAvLyBwcm9wZXJ0eSBpcyBhIGJ1aWx0aW4gZnVuY3Rpb24gLSBvbmx5IHVzZWQg
Ynkgc3RhdGljIGhhc2h0YWJsZXMKKyAgICBDb25zdGFudEludGVnZXIgICA9IDEgPDwgMTAsIC8v
IHByb3BlcnR5IGlzIGEgY29uc3RhbnQgaW50ZWdlciAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFz
aHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9uLCAvLyBo
ZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rp
b25PckFjY2Vzc29yID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IsIC8vIGhlbHBlciBv
bmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbk9yQWNj
ZXNzb3JPckNvbnN0YW50ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDb25zdGFu
dEludGVnZXIsIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKIH07CiAK
K2lubGluZSB1bnNpZ25lZCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHVuc2lnbmVkIGF0dHJpYnV0
ZXMpCit7CisgICAgLy8gVGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgdXNlZCBqdXN0IGZvciB0aGUg
c3RhdGljIGhhc2h0YWJsZSBhcmUgYXQgYml0IDggYW5kIGhpZ2hlci4KKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dWludDhfdD4oYXR0cmlidXRlcyk7Cit9CisKIGNsYXNzIFByb3BlcnR5U2xvdCB7
CiAgICAgZW51bSBQcm9wZXJ0eVR5cGUgewogICAgICAgICBUeXBlVW5zZXQsCkBAIC0xMjUsNiAr
MTMzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1ZShKU09iamVjdCogc2xvdEJhc2Us
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTVmFsdWUgdmFsdWUpCiAgICAgeworICAgICAgICBBU1NF
UlQoYXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGF0dHJpYnV0ZXMpKTsKKyAg
ICAgICAgCiAgICAgICAgIG1fZGF0YS52YWx1ZSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSk7CiAg
ICAgICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CiAKQEAgLTEzNiw2ICsxNDYsOCBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRWYWx1ZShKU09iamVjdCogc2xvdEJhc2UsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMsIEpTVmFsdWUgdmFsdWUsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAg
ICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
YXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAg
bV9kYXRhLnZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKICAgICAgICAgbV9hdHRyaWJ1
dGVzID0gYXR0cmlidXRlczsKQEAgLTE0OCw2ICsxNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldFZhbHVlKEpTU3RyaW5nKiwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNWYWx1ZSB2YWx1ZSkK
ICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAg
ICAgbV9kYXRhLnZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKICAgICAgICAgbV9hdHRy
aWJ1dGVzID0gYXR0cmlidXRlczsKQEAgLTE1OSw2ICsxNzMsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldEN1c3RvbShKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdl
dFZhbHVlRnVuYyBnZXRWYWx1ZSkKICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAg
QVNTRVJUKGdldFZhbHVlKTsKICAgICAgICAgbV9kYXRhLmN1c3RvbS5nZXRWYWx1ZSA9IGdldFZh
bHVlOwogICAgICAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwpAQCAtMTcxLDYgKzE4Nyw4
IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVjdCog
c2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSkKICAg
ICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
YXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKGdldFZhbHVlKTsKICAgICAg
ICAgbV9kYXRhLmN1c3RvbS5nZXRWYWx1ZSA9IGdldFZhbHVlOwogICAgICAgICBtX2F0dHJpYnV0
ZXMgPSBhdHRyaWJ1dGVzOwpAQCAtMTgzLDYgKzIwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0R2V0dGVyU2xvdChKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdl
dHRlclNldHRlciogZ2V0dGVyU2V0dGVyKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGF0dHJpYnV0
ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CisgICAgICAgIAogICAg
ICAgICBBU1NFUlQoZ2V0dGVyU2V0dGVyKTsKICAgICAgICAgbV9kYXRhLmdldHRlci5nZXR0ZXJT
ZXR0ZXIgPSBnZXR0ZXJTZXR0ZXI7CiAgICAgICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7
CkBAIC0xOTUsNiArMjE1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDYWNoZWFibGVHZXR0
ZXJTbG90KEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0dGVyU2V0
dGVyKiBnZXR0ZXJTZXR0ZXIsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAgICB7CisgICAgICAg
IEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykp
OworICAgICAgICAKICAgICAgICAgQVNTRVJUKGdldHRlclNldHRlcik7CiAgICAgICAgIG1fZGF0
YS5nZXR0ZXIuZ2V0dGVyU2V0dGVyID0gZ2V0dGVyU2V0dGVyOwogICAgICAgICBtX2F0dHJpYnV0
ZXMgPSBhdHRyaWJ1dGVzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmgJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBvdXRPZkxpbmVHcm93dGhGYWMKIHN0cnVjdCBQcm9wZXJ0eU1hcEVudHJ5
IHsKICAgICBVbmlxdWVkU3RyaW5nSW1wbCoga2V5OwogICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dDsKLSAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOworICAgIHVpbnQ4X3QgYXR0cmlidXRlczsKIAog
ICAgIFByb3BlcnR5TWFwRW50cnkoKQogICAgICAgICA6IGtleShudWxscHRyKQpAQCAtOTQsNiAr
OTQsNyBAQCBzdHJ1Y3QgUHJvcGVydHlNYXBFbnRyeSB7CiAgICAgICAgICwgb2Zmc2V0KG9mZnNl
dCkKICAgICAgICAgLCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiAgICAgeworICAgICAgICBBU1NF
UlQodGhpcy0+YXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzKTsKICAgICB9CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260236</attachid>
            <date>2015-08-29 21:59:18 -0700</date>
            <delta_ts>2015-08-29 22:38:23 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31836</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MTU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBA
CisyMDE1LTA4LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SlNDIHByb3BlcnR5IGF0dHJpYnV0ZXMgc2hvdWxkIGZpdCBpbiBhIGJ5dGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODYxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgd2FudCB0byBtYWtlIHJvb20g
aW4gUHJvcGVydHlNYXBFbnRyeSBmb3IgbW9yZSB0aGluZ3MgdG8gc3VwcG9ydCBwcm9wZXJ0eSB0
eXBlIGluZmVyZW5jZSAoc2VlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDg2MTApLiBUaGUgbW9zdCBvYnZpb3VzIGNhbmRpZGF0ZSBmb3IgYSBzaXpl
IHJlZHVjdGlvbiBpcworICAgICAgICBhdHRyaWJ1dGVzLCBzaW5jZSB3ZSBvbmx5IGhhdmUgYSBz
bWFsbCBudW1iZXIgb2YgYXR0cmlidXRlIGJpdHMuIEV2ZW4gd2l0aG91dCBjb21wbGV4IGNoYW5n
ZXMsIGl0CisgICAgICAgIHdvdWxkIGhhdmUgYmVlbiBwb3NzaWJsZSB0byByZWR1Y2UgdGhlIGF0
dHJpYnV0ZSBmaWVsZCBmcm9tIDMyIGJpdHMgdG8gMTYgYml0cy4gU3BlY2lmaWNhbGx5LCBwcmlv
cgorICAgICAgICB0byB0aGlzIGNoYW5nZSwgdGhlIGF0dHJpYnV0ZXMgZmllbGQgbmVlZGVkIDkg
Yml0cy4KKworICAgICAgICBIb3dldmVyLCBtYW55IG9mIHRoZSBhdHRyaWJ1dGVzIGJpdHMgYXJl
IGZvciB0aGUgc3RhdGljIGxvb2t1cCBoYXNodGFibGVzIHRoYXQgd2UgdXNlIGZvciBsYXppbHkK
KyAgICAgICAgYnVpbGRpbmcgb2JqZWN0cyBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeS4gVGhvc2Ug
Yml0cyBkb24ndCBuZWVkIHRvIHN0YXkgYXJvdW5kIGFmdGVyIHRoZSBwcm9wZXJ0eQorICAgICAg
ICBoYXMgYmVlbiBjcmVhdGVkLCBzaW5jZSB0aGV5IGFyZSBqdXN0IGZvciB0ZWxsaW5nIHRoZSBj
b2RlIGluIExvb2t1cCBob3cgdG8gY3JlYXRlIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgU28sIHRo
aXMgY2hhbmdlIHNlcGFyYXRlcyB0aGUgYXR0cmlidXRlcyBiaXRzIGludG8gdGhvc2UgdGhhdCBh
cmUgaW50ZXJlc3RpbmcgZm9yIFN0cnVjdHVyZSBhbmQKKyAgICAgICAgdGhvc2UgdGhhdCBhcmVu
J3QuIFRoZSBvbmVzIHVzZWQgYnkgU3RydWN0dXJlIHNpdCBpbiB0aGUgbG93IDggYml0cywgYWxs
b3dpbmcgZm9yIHRoZSBhdHRyaWJ1dGVzCisgICAgICAgIGZpZWxkIGluIFByb3BlcnR5TWFwRW50
cnkgdG8gYmUgYSB1aW50OF90LiBUaGUgYXR0cmlidXRlcyBiaXRzIHVzZWQgb25seSBieSBMb29r
dXAgdXNlIHRoZSBoaWdoZXIKKyAgICAgICAgYml0cy4gSW4gcHJvZHVjdGlvbiwgdGhlIGNvbnZl
cnNpb24gZnJvbSB0aGUgTG9va3VwIGF0dHJpYnV0ZXMgdG8gdGhlIFN0cnVjdHVyZSBhdHRyaWJ1
dGVzIGlzIGp1c3QKKyAgICAgICAgYSBjYXN0IHRvIHVpbnQ4X3QuIEluIGRlYnVnLCB3ZSBhc3Nl
cnQgdGhhdCB0aG9zZSBiaXRzIGFyZSBub3QgZHJvcHBlZCBieSBhY2NpZGVudC4gQ29kZSB0aGF0
CisgICAgICAgIGludGVudGlvbmFsbHkgZHJvcHMgdGhvc2UgYml0cyBjYWxscyBhdHRyaWJ1dGVz
Rm9yU3RydWN0dXJlKCkuCisKKyAgICAgICAgSXQgdHVybmVkIG91dCB0aGF0IHRoZXJlIHdhcyBh
IGxvdCBvZiBjb2RlIHRoYXQgd2FzIHVzaW5nIHRoZSBGdW5jdGlvbiBiaXQgZXZlbiBpbiBjb2Rl
IHRoYXQgZGlkbid0CisgICAgICAgIGludm9sdmUgTG9va3VwLiBUaGlzIGNoYW5nZSByZW1vdmVz
IHRob3NlIHVzZXMgb2YgRnVuY3Rpb24uIFN0cnVjdHVyZSBkb2VzIG5vdCBuZWVkIHRvIGtub3cg
aWYgd2UKKyAgICAgICAgdGhpbmsgdGhhdCBhIHByb3BlcnR5IHBvaW50cyB0byBhIGZ1bmN0aW9u
LgorCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAo
SlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpTQzo6c2V0VXBTdGF0
aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChK
U0M6OmdldFN0YXRpY1Byb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1ZhbHVl
U2xvdCk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydGllcyk6CisgICAgICAgICog
cnVudGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OmF0dHJpYnV0ZXNGb3JTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OnNldFZhbHVlKToKKyAgICAgICAg
KEpTQzo6UHJvcGVydHlTbG90OjpzZXRDdXN0b20pOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNs
b3Q6OnNldENhY2hlYWJsZUN1c3RvbSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0
R2V0dGVyU2xvdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0Q2FjaGVhYmxlR2V0
dGVyU2xvdCk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6
UHJvcGVydHlNYXBFbnRyeTo6UHJvcGVydHlNYXBFbnRyeSk6CisKIDIwMTUtMDgtMjkgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggUHJv
cGVydHlOYW1lOjppc051bGwoKSB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxODg5OTQuCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTg5MTIyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0NiwxMiArNjQ2LDEyIEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJnZXRFbGVtZW50IiwgZnVuY3Rpb25HZXRF
bGVtZW50LCAxKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJzZXRFbGVtZW50Um9vdCIsIGZ1
bmN0aW9uU2V0RWxlbWVudFJvb3QsIDIpOwogICAgICAgICAKLSAgICAgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiREZHVHJ1
ZSIpLCAwLCBmdW5jdGlvbkZhbHNlMSwgREZHVHJ1ZUludHJpbnNpYywgRG9udEVudW0gfCBKU0M6
OkZ1bmN0aW9uKTsKLSAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiT1NSRXhpdCIpLCAwLCBmdW5jdGlvblVuZGVmaW5l
ZDEsIE9TUkV4aXRJbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7Ci0gICAgICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImlzRmluYWxUaWVyIiksIDAsIGZ1bmN0aW9uRmFsc2UyLCBJc0ZpbmFsVGllckludHJp
bnNpYywgRG9udEVudW0gfCBKU0M6OkZ1bmN0aW9uKTsKLSAgICAgICAgcHV0RGlyZWN0TmF0aXZl
RnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicHJlZGljdElu
dDMyIiksIDAsIGZ1bmN0aW9uVW5kZWZpbmVkMiwgU2V0SW50MzJIZWFwUHJlZGljdGlvbkludHJp
bnNpYywgRG9udEVudW0gfCBKU0M6OkZ1bmN0aW9uKTsKLSAgICAgICAgcHV0RGlyZWN0TmF0aXZl
RnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNJbnQzMiIp
LCAwLCBmdW5jdGlvbklzSW50MzIsIENoZWNrSW50MzJJbnRyaW5zaWMsIERvbnRFbnVtIHwgSlND
OjpGdW5jdGlvbik7Ci0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZpYXRJbnQ1MiIpLCAwLCBmdW5jdGlvbklkZW50
aXR5LCBGaWF0SW50NTJJbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7CisgICAg
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgIkRGR1RydWUiKSwgMCwgZnVuY3Rpb25GYWxzZTEsIERGR1RydWVJbnRyaW5zaWMs
IERvbnRFbnVtKTsKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiT1NSRXhpdCIpLCAwLCBmdW5jdGlvblVuZGVmaW5l
ZDEsIE9TUkV4aXRJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZl
RnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNGaW5hbFRp
ZXIiKSwgMCwgZnVuY3Rpb25GYWxzZTIsIElzRmluYWxUaWVySW50cmluc2ljLCBEb250RW51bSk7
CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgInByZWRpY3RJbnQzMiIpLCAwLCBmdW5jdGlvblVuZGVmaW5lZDIsIFNl
dEludDMySGVhcFByZWRpY3Rpb25JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICAgICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
aXNJbnQzMiIpLCAwLCBmdW5jdGlvbklzSW50MzIsIENoZWNrSW50MzJJbnRyaW5zaWMsIERvbnRF
bnVtKTsKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiZmlhdEludDUyIiksIDAsIGZ1bmN0aW9uSWRlbnRpdHksIEZp
YXRJbnQ1MkludHJpbnNpYywgRG9udEVudW0pOwogICAgICAgICAKICAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJlZmZlY3RmdWw0MiIsIGZ1bmN0aW9uRWZmZWN0ZnVsNDIsIDApOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgIm1ha2VNYXNxdWVyYWRlciIsIGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVy
LCAwKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUyLDcgKzM1Miw3
IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogI2VuZGlmCiAKICAgICBtX3Bh
cnNlSW50RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDIsIHZtLnByb3BlcnR5TmFtZXMtPnBhcnNlSW50LnN0cmluZygpLCBnbG9iYWxGdW5jUGFyc2VJ
bnQsIE5vSW50cmluc2ljKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPnBhcnNlSW50LCBtX3BhcnNlSW50RnVuY3Rpb24uZ2V0KCksIERvbnRF
bnVtIHwgRnVuY3Rpb24pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wYXJzZUludCwgbV9wYXJzZUludEZ1bmN0aW9uLmdldCgpLCBEb250RW51
bSk7CiAKICNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5h
bWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKIG1fICMj
IGxvd2VyTmFtZSAjIyBQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90
eXBlOjpjcmVhdGUodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7IFwKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMTg5MTIyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNzUsNyArNzUsNiBAQCBDT01QSUxFX0FTU0VSVChOb25lIDwgRmlyc3RJbnRlcm5hbEF0dHJp
CiBDT01QSUxFX0FTU0VSVChSZWFkT25seSA8IEZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUsIFJlYWRP
bmx5X2lzX2JlbG93X0ZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUpOwogQ09NUElMRV9BU1NFUlQoRG9u
dEVudW0gPCBGaXJzdEludGVybmFsQXR0cmlidXRlLCBEb250RW51bV9pc19iZWxvd19GaXJzdElu
dGVybmFsQXR0cmlidXRlKTsKIENPTVBJTEVfQVNTRVJUKERvbnREZWxldGUgPCBGaXJzdEludGVy
bmFsQXR0cmlidXRlLCBEb250RGVsZXRlX2lzX2JlbG93X0ZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUp
OwotQ09NUElMRV9BU1NFUlQoRnVuY3Rpb24gPCBGaXJzdEludGVybmFsQXR0cmlidXRlLCBGdW5j
dGlvbl9pc19iZWxvd19GaXJzdEludGVybmFsQXR0cmlidXRlKTsKIENPTVBJTEVfQVNTRVJUKEFj
Y2Vzc29yIDwgRmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSwgQWNjZXNzb3JfaXNfYmVsb3dfRmlyc3RJ
bnRlcm5hbEF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTRmluYWxPYmplY3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHJldmlzaW9uIDE4OTEyMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTU2LDExICs1NiwxMSBAQCBib29sIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSog
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1
dGVzKCkgJiBCdWlsdGluKQotICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0QnVpbHRpbkZ1
bmN0aW9uKHZtLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBlbnRyeS0+
YnVpbHRpbkdlbmVyYXRvcigpKHZtKSwgZW50cnktPmF0dHJpYnV0ZXMoKSk7CisgICAgICAgICAg
ICB0aGlzT2JqLT5wdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIHRoaXNPYmotPmdsb2JhbE9i
amVjdCgpLCBwcm9wZXJ0eU5hbWUsIGVudHJ5LT5idWlsdGluR2VuZXJhdG9yKCkodm0pLCBhdHRy
aWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpKTsKICAgICAgICAgZWxzZSBp
ZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSB7CiAgICAgICAgICAgICB0aGlzT2Jq
LT5wdXREaXJlY3ROYXRpdmVGdW5jdGlvbigKICAgICAgICAgICAgICAgICB2bSwgdGhpc09iai0+
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgZW50cnktPmZ1bmN0aW9uTGVuZ3RoKCksCi0g
ICAgICAgICAgICAgICAgZW50cnktPmZ1bmN0aW9uKCksIGVudHJ5LT5pbnRyaW5zaWMoKSwgZW50
cnktPmF0dHJpYnV0ZXMoKSk7CisgICAgICAgICAgICAgICAgZW50cnktPmZ1bmN0aW9uKCksIGVu
dHJ5LT5pbnRyaW5zaWMoKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRl
cygpKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNBY2Nlc3Nvcik7
CiAgICAgICAgICAgICByZWlmeVN0YXRpY0FjY2Vzc29yKHZtLCAqZW50cnksICp0aGlzT2JqLCBw
cm9wZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgJ
KHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsMTEgKzE4OCwxMSBAQCBpbmxpbmUgYm9vbCBnZXRT
dGF0aWNQcm9wZXJ0eVNsb3QoRXhlY1N0CiAgICAgICAgIHJldHVybiBzZXRVcFN0YXRpY0Z1bmN0
aW9uU2xvdChleGVjLCBlbnRyeSwgdGhpc09iaiwgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAg
IGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgQ29uc3RhbnRJbnRlZ2VyKSB7Ci0gICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iaiwgZW50cnktPmF0dHJpYnV0ZXMoKSwganNOdW1iZXIoZW50cnkt
PmNvbnN0YW50SW50ZWdlcigpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iaiwgYXR0
cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwganNOdW1iZXIoZW50cnkt
PmNvbnN0YW50SW50ZWdlcigpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1dGVzKCksIGVu
dHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlz
T2JqLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpLCBlbnRyeS0+
cHJvcGVydHlHZXR0ZXIoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIyOSwxMSArMjI5
LDExIEBAIGlubGluZSBib29sIGdldFN0YXRpY1ZhbHVlU2xvdChFeGVjU3RhdGUKICAgICBBU1NF
UlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yKSk7
CiAKICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIENvbnN0YW50SW50ZWdlcikgewotICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1dGVzKCksIGpzTnVtYmVy
KGVudHJ5LT5jb25zdGFudEludGVnZXIoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmosIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSksIGpzTnVtYmVy
KGVudHJ5LT5jb25zdGFudEludGVnZXIoKSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqLCBlbnRyeS0+YXR0cmlidXRl
cygpLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CisgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0
b20odGhpc09iaiwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwg
ZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yNzks
MTggKzI3OSwxOSBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRpY1Byb3BlcnRpZXMoVk0mIHZtCiAK
ICAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHZhbHVlLm1fa2V5KSwgc3RybGVu
KHZhbHVlLm1fa2V5KSk7CiAgICAgICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBCdWlsdGlu
KSB7Ci0gICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgdGhp
c09iai5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZS5idWlsdGluR2VuZXJhdG9y
KCkodm0pLCB2YWx1ZS5hdHRyaWJ1dGVzKCkpOworICAgICAgICAgICAgdGhpc09iai5wdXREaXJl
Y3RCdWlsdGluRnVuY3Rpb24odm0sIHRoaXNPYmouZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFt
ZSwgdmFsdWUuYnVpbHRpbkdlbmVyYXRvcigpKHZtKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2
YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIEZ1bmN0aW9uKSB7Ci0gICAgICAgICAg
ICB0aGlzT2JqLnB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzT2JqLmdsb2JhbE9iamVj
dCgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLmZ1bmN0aW9uTGVuZ3RoKCksCi0gICAgICAgICAgICAg
ICAgdmFsdWUuZnVuY3Rpb24oKSwgdmFsdWUuaW50cmluc2ljKCksIHZhbHVlLmF0dHJpYnV0ZXMo
KSk7CisgICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKAorICAgICAg
ICAgICAgICAgIHZtLCB0aGlzT2JqLmdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LmZ1bmN0aW9uTGVuZ3RoKCksCisgICAgICAgICAgICAgICAgdmFsdWUuZnVuY3Rpb24oKSwgdmFs
dWUuaW50cmluc2ljKCksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygp
KSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh2YWx1
ZS5hdHRyaWJ1dGVzKCkgJiBDb25zdGFudEludGVnZXIpIHsKLSAgICAgICAgICAgIHRoaXNPYmou
cHV0RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIGpzTnVtYmVyKHZhbHVlLmNvbnN0YW50SW50ZWdl
cigpKSwgdmFsdWUuYXR0cmlidXRlcygpKTsKKyAgICAgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0
KHZtLCBwcm9wZXJ0eU5hbWUsIGpzTnVtYmVyKHZhbHVlLmNvbnN0YW50SW50ZWdlcigpKSwgYXR0
cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICB9CiAKQEAgLTMwMCw3ICszMDEsNyBAQCBpbmxpbmUgdm9pZCByZWlm
eVN0YXRpY1Byb3BlcnRpZXMoVk0mIHZtCiAgICAgICAgIH0KIAogICAgICAgICBDdXN0b21HZXR0
ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRl
KHZtLCB2YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1ZS5wcm9wZXJ0eVB1dHRlcigpKTsKLSAg
ICAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBj
dXN0b21HZXR0ZXJTZXR0ZXIsIHZhbHVlLmF0dHJpYnV0ZXMoKSk7CisgICAgICAgIHRoaXNPYmou
cHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0
dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogICAgIH0K
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5j
cHAJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTk1LDQxICs5NSw0
MSBAQCB2b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgCiAgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiU1FS
VDFfMiIpLCBqc051bWJlcihzcXJ0KDAuNSkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFk
T25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAiU1FSVDIiKSwganNOdW1iZXIoc3FydCgyLjApKSwgRG9udERlbGV0ZSB8
IERvbnRFbnVtIHwgUmVhZE9ubHkpOwogCi0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgImFicyIpLCAxLCBtYXRoUHJvdG9GdW5jQWJzLCBBYnNJbnRyaW5zaWMsIERvbnRFbnVtIHwg
RnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhY29zIiksIDEs
IG1hdGhQcm90b0Z1bmNBQ29zLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0g
ICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFzaW4iKSwgMSwgbWF0aFByb3RvRnVu
Y0FTaW4sIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiYXRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jQVRhbiwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJhY29zaCIpLCAxLCBtYXRoUHJvdG9GdW5jQUNvc2gsIE5vSW50cmluc2ljLCBEb250
RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXNp
bmgiKSwgMSwgbWF0aFByb3RvRnVuY0FTaW5oLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5j
dGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImF0YW5oIiksIDEsIG1h
dGhQcm90b0Z1bmNBVGFuaCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhdGFuMiIpLCAyLCBtYXRoUHJvdG9GdW5j
QVRhbjIsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiY2JydCIpLCAxLCBtYXRoUHJvdG9GdW5jQ2JydCwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJjZWlsIiksIDEsIG1hdGhQcm90b0Z1bmNDZWlsLCBDZWlsSW50cmluc2ljLCBEb250
RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2x6
MzIiKSwgMSwgbWF0aFByb3RvRnVuY0NsejMyLCBDbHozMkludHJpbnNpYywgRG9udEVudW0gfCBG
dW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNvcyIpLCAxLCBt
YXRoUHJvdG9GdW5jQ29zLCBDb3NJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjb3NoIiksIDEsIG1hdGhQcm90b0Z1bmND
b3NoLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImV4cCIpLCAxLCBtYXRoUHJvdG9GdW5jRXhwLCBFeHBJbnRyaW5z
aWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sICJleHBtMSIpLCAxLCBtYXRoUHJvdG9GdW5jRXhwbTEsIE5vSW50cmluc2ljLCBEb250RW51
bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmxvb3Ii
KSwgMSwgbWF0aFByb3RvRnVuY0Zsb29yLCBGbG9vckludHJpbnNpYywgRG9udEVudW0gfCBGdW5j
dGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZyb3VuZCIpLCAxLCBt
YXRoUHJvdG9GdW5jRnJvdW5kLCBGUm91bmRJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24p
OwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJoeXBvdCIpLCAyLCBtYXRoUHJv
dG9GdW5jSHlwb3QsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nIiksIDEsIG1hdGhQcm90b0Z1bmNMb2csIExv
Z0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImxvZzEwIiksIDEsIG1hdGhQcm90b0Z1bmNMb2cxMCwgTm9JbnRyaW5zaWMs
IERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91
dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJsb2cxcCIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nMXAsIE5vSW50cmluc2ljLCBEb250RW51bSB8
IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nMiIpLCAx
LCBtYXRoUHJvdG9GdW5jTG9nMiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwot
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJtYXgiKSwgMiwgbWF0aFByb3RvRnVu
Y01heCwgTWF4SW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAibWluIiksIDIsIG1hdGhQcm90b0Z1bmNNaW4sIE1pbkludHJp
bnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgInBvdyIpLCAyLCBtYXRoUHJvdG9GdW5jUG93LCBQb3dJbnRyaW5zaWMsIERvbnRFbnVt
IHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJyYW5kb20i
KSwgMCwgbWF0aFByb3RvRnVuY1JhbmRvbSwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rp
b24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJyb3VuZCIpLCAxLCBtYXRo
UHJvdG9GdW5jUm91bmQsIFJvdW5kSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAg
ICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2lnbiIpLCAxLCBtYXRoUHJvdG9GdW5j
U2lnbiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sICJzaW4iKSwgMSwgbWF0aFByb3RvRnVuY1NpbiwgU2luSW50cmlu
c2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAic2luaCIpLCAxLCBtYXRoUHJvdG9GdW5jU2luaCwgTm9JbnRyaW5zaWMsIERvbnRFbnVt
IHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzcXJ0Iiks
IDEsIG1hdGhQcm90b0Z1bmNTcXJ0LCBTcXJ0SW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9u
KTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidGFuIiksIDEsIG1hdGhQcm90
b0Z1bmNUYW4sIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidGFuaCIpLCAxLCBtYXRoUHJvdG9GdW5jVGFuaCwgTm9J
bnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJ0cnVuYyIpLCAxLCBtYXRoUHJvdG9GdW5jVHJ1bmMsIE5vSW50cmluc2ljLCBE
b250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
aW11bCIpLCAyLCBtYXRoUHJvdG9GdW5jSU11bCwgSU11bEludHJpbnNpYywgRG9udEVudW0gfCBG
dW5jdGlvbik7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFicyIpLCAxLCBt
YXRoUHJvdG9GdW5jQWJzLCBBYnNJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiYWNvcyIpLCAxLCBtYXRoUHJvdG9GdW5jQUNvcywgTm9JbnRy
aW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXNp
biIpLCAxLCBtYXRoUHJvdG9GdW5jQVNpbiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jQVRh
biwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAiYWNvc2giKSwgMSwgbWF0aFByb3RvRnVuY0FDb3NoLCBOb0ludHJpbnNpYywgRG9udEVu
dW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhc2luaCIpLCAxLCBtYXRo
UHJvdG9GdW5jQVNpbmgsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImF0YW5oIiksIDEsIG1hdGhQcm90b0Z1bmNBVGFuaCwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXRh
bjIiKSwgMiwgbWF0aFByb3RvRnVuY0FUYW4yLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjYnJ0IiksIDEsIG1hdGhQcm90b0Z1bmND
YnJ0LCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJjZWlsIiksIDEsIG1hdGhQcm90b0Z1bmNDZWlsLCBDZWlsSW50cmluc2ljLCBEb250
RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNsejMyIiksIDEsIG1h
dGhQcm90b0Z1bmNDbHozMiwgQ2x6MzJJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY29zIiksIDEsIG1hdGhQcm90b0Z1bmNDb3MsIENvc0lu
dHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJj
b3NoIiksIDEsIG1hdGhQcm90b0Z1bmNDb3NoLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJleHAiKSwgMSwgbWF0aFByb3RvRnVuY0V4
cCwgRXhwSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImV4cG0xIiksIDEsIG1hdGhQcm90b0Z1bmNFeHBtMSwgTm9JbnRyaW5zaWMsIERvbnRF
bnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmxvb3IiKSwgMSwgbWF0
aFByb3RvRnVuY0Zsb29yLCBGbG9vckludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVj
dE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sICJmcm91bmQiKSwgMSwgbWF0aFByb3RvRnVuY0Zyb3VuZCwg
RlJvdW5kSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImh5cG90IiksIDIsIG1hdGhQcm90b0Z1bmNIeXBvdCwgTm9JbnRyaW5zaWMsIERvbnRF
bnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nIiksIDEsIG1hdGhQ
cm90b0Z1bmNMb2csIExvZ0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJsb2cxMCIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nMTAsIE5vSW50cmlu
c2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNp
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImxvZzFw
IiksIDEsIG1hdGhQcm90b0Z1bmNMb2cxcCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nMiIpLCAxLCBtYXRoUHJvdG9GdW5jTG9n
MiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAibWF4IiksIDIsIG1hdGhQcm90b0Z1bmNNYXgsIE1heEludHJpbnNpYywgRG9udEVudW0p
OworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJtaW4iKSwgMiwgbWF0aFByb3Rv
RnVuY01pbiwgTWluSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgInBvdyIpLCAyLCBtYXRoUHJvdG9GdW5jUG93LCBQb3dJbnRyaW5zaWMsIERv
bnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZt
LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicmFuZG9tIiksIDAs
IG1hdGhQcm90b0Z1bmNSYW5kb20sIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInJvdW5kIiksIDEsIG1hdGhQcm90b0Z1bmNSb3VuZCwg
Um91bmRJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAic2lnbiIpLCAxLCBtYXRoUHJvdG9GdW5jU2lnbiwgTm9JbnRyaW5zaWMsIERvbnRFbnVt
KTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2luIiksIDEsIG1hdGhQcm90
b0Z1bmNTaW4sIFNpbkludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1
bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJzaW5oIiksIDEsIG1hdGhQcm90b0Z1bmNTaW5oLCBOb0ludHJpbnNpYywg
RG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzcXJ0IiksIDEs
IG1hdGhQcm90b0Z1bmNTcXJ0LCBTcXJ0SW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jVGFuLCBOb0lu
dHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ0
YW5oIiksIDEsIG1hdGhQcm90b0Z1bmNUYW5oLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ0cnVuYyIpLCAxLCBtYXRoUHJvdG9GdW5j
VHJ1bmMsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rp
b25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgImltdWwiKSwgMiwgbWF0aFByb3RvRnVuY0lNdWwsIElNdWxJbnRyaW5zaWMsIERv
bnRFbnVtKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9u
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
MTg5MTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQg
KEMpIDE5OTktMjAwMCwyMDAzIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNjgsMTIgKzY4LDEy
IEBAIHZvaWQgTnVtYmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFYKICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJQT1NJ
VElWRV9JTkZJTklUWSIpLCBqc0RvdWJsZU51bWJlcihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OmluZmluaXR5KCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CiAgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAiTmFOIiksIGpzTmFOKCksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIAot
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNG
aW5pdGUiKSwgMSwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNGaW5pdGUsIE5vSW50cmluc2ljLCBE
b250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImlzSW50ZWdlciIpLCAxLCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJ
c0ludGVnZXIsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImlzTmFOIiksIDEsIG51
bWJlckNvbnN0cnVjdG9yRnVuY0lzTmFOLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlv
bik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVt
YmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJpc1NhZmVJbnRlZ2VyIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIs
IE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInBhcnNlRmxvYXQiKSwgMSwgZ2xvYmFs
RnVuY1BhcnNlRmxvYXQsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJwYXJzZUludCIpLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLT5wYXJzZUludEZ1
bmN0aW9uKCksIERvbnRFbnVtIHwgRnVuY3Rpb24pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCks
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNGaW5pdGUiKSwgMSwgbnVtYmVyQ29uc3Ry
dWN0b3JGdW5jSXNGaW5pdGUsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0
TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ludGVnZXIiKSwgMSwg
bnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyLCBOb0ludHJpbnNpYywgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNO
YU4iKSwgMSwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNOYU4sIE5vSW50cmluc2ljLCBEb250RW51
bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVt
YmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJpc1NhZmVJbnRlZ2VyIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIs
IE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sICJwYXJzZUZsb2F0IiksIDEsIGdsb2JhbEZ1bmNQYXJzZUZs
b2F0LCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInBhcnNlSW50IiksIG51bWJlclBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCktPnBhcnNlSW50RnVuY3Rpb24oKSwgRG9udEVudW0pOwog
fQogCiAvLyBFQ01BIDE1LjcuMQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlTbG90LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlTbG90LmgJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNiArNDAs
MjQgQEAgZW51bSBBdHRyaWJ1dGUgewogICAgIFJlYWRPbmx5ICAgICAgICAgID0gMSA8PCAxLCAg
Ly8gcHJvcGVydHkgY2FuIGJlIG9ubHkgcmVhZCwgbm90IHdyaXR0ZW4KICAgICBEb250RW51bSAg
ICAgICAgICA9IDEgPDwgMiwgIC8vIHByb3BlcnR5IGRvZXNuJ3QgYXBwZWFyIGluIChmb3IgLi4g
aW4gLi4pCiAgICAgRG9udERlbGV0ZSAgICAgICAgPSAxIDw8IDMsICAvLyBwcm9wZXJ0eSBjYW4n
dCBiZSBkZWxldGVkCi0gICAgRnVuY3Rpb24gICAgICAgICAgPSAxIDw8IDQsICAvLyBwcm9wZXJ0
eSBpcyBhIGZ1bmN0aW9uIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCi0gICAgQWNj
ZXNzb3IgICAgICAgICAgPSAxIDw8IDUsICAvLyBwcm9wZXJ0eSBpcyBhIGdldHRlci9zZXR0ZXIK
LSAgICBDdXN0b21BY2Nlc3NvciAgICA9IDEgPDwgNiwKLSAgICBCdWlsdGluICAgICAgICAgICA9
IDEgPDwgNywgLy8gcHJvcGVydHkgaXMgYSBidWlsdGluIGZ1bmN0aW9uIC0gb25seSB1c2VkIGJ5
IHN0YXRpYyBoYXNodGFibGVzCi0gICAgQ29uc3RhbnRJbnRlZ2VyICAgPSAxIDw8IDgsIC8vIHBy
b3BlcnR5IGlzIGEgY29uc3RhbnQgaW50ZWdlciAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRh
YmxlcworICAgIEFjY2Vzc29yICAgICAgICAgID0gMSA8PCA0LCAgLy8gcHJvcGVydHkgaXMgYSBn
ZXR0ZXIvc2V0dGVyCisgICAgQ3VzdG9tQWNjZXNzb3IgICAgPSAxIDw8IDUsCisKKyAgICAvLyBU
aGluZ3MgdGhhdCBhcmUgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcyBhcmUgbm90IGluIHRoZSBh
dHRyaWJ1dGVzIGJ5dGUgaW4gUHJvcGVydHlNYXBFbnRyeS4KKyAgICBGdW5jdGlvbiAgICAgICAg
ICA9IDEgPDwgOCwgIC8vIHByb3BlcnR5IGlzIGEgZnVuY3Rpb24gLSBvbmx5IHVzZWQgYnkgc3Rh
dGljIGhhc2h0YWJsZXMKKyAgICBCdWlsdGluICAgICAgICAgICA9IDEgPDwgOSwgIC8vIHByb3Bl
cnR5IGlzIGEgYnVpbHRpbiBmdW5jdGlvbiAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxl
cworICAgIENvbnN0YW50SW50ZWdlciAgID0gMSA8PCAxMCwgLy8gcHJvcGVydHkgaXMgYSBjb25z
dGFudCBpbnRlZ2VyIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRp
bk9yRnVuY3Rpb24gPSBCdWlsdGluIHwgRnVuY3Rpb24sIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkg
c3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3IgPSBCdWls
dGluIHwgRnVuY3Rpb24gfCBBY2Nlc3NvciwgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBzdGF0aWMg
aGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yQ29uc3RhbnQgPSBC
dWlsdGluIHwgRnVuY3Rpb24gfCBBY2Nlc3NvciB8IENvbnN0YW50SW50ZWdlciwgLy8gaGVscGVy
IG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogfTsKIAoraW5saW5lIHVuc2lnbmVkIGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodW5zaWduZWQgYXR0cmlidXRlcykKK3sKKyAgICAvLyBUaGUg
YXR0cmlidXRlcyB0aGF0IGFyZSB1c2VkIGp1c3QgZm9yIHRoZSBzdGF0aWMgaGFzaHRhYmxlIGFy
ZSBhdCBiaXQgOCBhbmQgaGlnaGVyLgorICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90Pihh
dHRyaWJ1dGVzKTsKK30KKwogY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICBlbnVtIFByb3BlcnR5
VHlwZSB7CiAgICAgICAgIFR5cGVVbnNldCwKQEAgLTEyNSw2ICsxMzMsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldFZhbHVlKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRl
cywgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgbV9k
YXRhLnZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKICAgICAgICAgbV9hdHRyaWJ1dGVz
ID0gYXR0cmlidXRlczsKIApAQCAtMTM2LDYgKzE0Niw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2
b2lkIHNldFZhbHVlKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNW
YWx1ZSB2YWx1ZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogICAgIHsKKyAgICAgICAgQVNTRVJU
KGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CisgICAg
ICAgIAogICAgICAgICBBU1NFUlQodmFsdWUpOwogICAgICAgICBtX2RhdGEudmFsdWUgPSBKU1Zh
bHVlOjplbmNvZGUodmFsdWUpOwogICAgICAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwpA
QCAtMTQ4LDYgKzE2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmFsdWUoSlNTdHJpbmcq
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKKyAgICAgICAgQVNT
RVJUKGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7Cisg
ICAgICAgIAogICAgICAgICBBU1NFUlQodmFsdWUpOwogICAgICAgICBtX2RhdGEudmFsdWUgPSBK
U1ZhbHVlOjplbmNvZGUodmFsdWUpOwogICAgICAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVz
OwpAQCAtMTU5LDYgKzE3Myw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q3VzdG9tKEpTT2Jq
ZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0VmFsdWVGdW5jIGdldFZhbHVl
KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVj
dHVyZShhdHRyaWJ1dGVzKSk7CisgICAgICAgIAogICAgICAgICBBU1NFUlQoZ2V0VmFsdWUpOwog
ICAgICAgICBtX2RhdGEuY3VzdG9tLmdldFZhbHVlID0gZ2V0VmFsdWU7CiAgICAgICAgIG1fYXR0
cmlidXRlcyA9IGF0dHJpYnV0ZXM7CkBAIC0xNzEsNiArMTg3LDggQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQgc2V0Q2FjaGVhYmxlQ3VzdG9tKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQg
YXR0cmlidXRlcywgR2V0VmFsdWVGdW5jIGdldFZhbHVlKQogICAgIHsKKyAgICAgICAgQVNTRVJU
KGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CisgICAg
ICAgIAogICAgICAgICBBU1NFUlQoZ2V0VmFsdWUpOwogICAgICAgICBtX2RhdGEuY3VzdG9tLmdl
dFZhbHVlID0gZ2V0VmFsdWU7CiAgICAgICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CkBA
IC0xODMsNiArMjAxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRHZXR0ZXJTbG90KEpTT2Jq
ZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0dGVyU2V0dGVyKiBnZXR0ZXJT
ZXR0ZXIpCiAgICAgeworICAgICAgICBBU1NFUlQoYXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzRm9y
U3RydWN0dXJlKGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgCiAgICAgICAgIEFTU0VSVChnZXR0ZXJT
ZXR0ZXIpOwogICAgICAgICBtX2RhdGEuZ2V0dGVyLmdldHRlclNldHRlciA9IGdldHRlclNldHRl
cjsKICAgICAgICAgbV9hdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKQEAgLTE5NSw2ICsyMTUsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENhY2hlYWJsZUdldHRlclNsb3QoSlNPYmplY3QqIHNs
b3RCYXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlciwg
UHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZXMg
PT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CisgICAgICAgIAogICAgICAg
ICBBU1NFUlQoZ2V0dGVyU2V0dGVyKTsKICAgICAgICAgbV9kYXRhLmdldHRlci5nZXR0ZXJTZXR0
ZXIgPSBnZXR0ZXJTZXR0ZXI7CiAgICAgICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24g
MTg5MTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG91dE9m
TGluZUdyb3d0aEZhYwogc3RydWN0IFByb3BlcnR5TWFwRW50cnkgewogICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiBrZXk7CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0OwotICAgIHVuc2lnbmVkIGF0
dHJpYnV0ZXM7CisgICAgdWludDhfdCBhdHRyaWJ1dGVzOwogCiAgICAgUHJvcGVydHlNYXBFbnRy
eSgpCiAgICAgICAgIDoga2V5KG51bGxwdHIpCkBAIC05NCw2ICs5NCw3IEBAIHN0cnVjdCBQcm9w
ZXJ0eU1hcEVudHJ5IHsKICAgICAgICAgLCBvZmZzZXQob2Zmc2V0KQogICAgICAgICAsIGF0dHJp
YnV0ZXMoYXR0cmlidXRlcykKICAgICB7CisgICAgICAgIEFTU0VSVCh0aGlzLT5hdHRyaWJ1dGVz
ID09IGF0dHJpYnV0ZXMpOwogICAgIH0KIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260237</attachid>
            <date>2015-08-29 22:38:23 -0700</date>
            <delta_ts>2015-08-30 14:18:52 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31915</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MTU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE1LTA4LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SlNDIHByb3BlcnR5IGF0dHJpYnV0ZXMgc2hvdWxkIGZpdCBpbiBhIGJ5dGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODYxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgd2FudCB0byBtYWtlIHJvb20g
aW4gUHJvcGVydHlNYXBFbnRyeSBmb3IgbW9yZSB0aGluZ3MgdG8gc3VwcG9ydCBwcm9wZXJ0eSB0
eXBlIGluZmVyZW5jZSAoc2VlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDg2MTApLiBUaGUgbW9zdCBvYnZpb3VzIGNhbmRpZGF0ZSBmb3IgYSBzaXpl
IHJlZHVjdGlvbiBpcworICAgICAgICBhdHRyaWJ1dGVzLCBzaW5jZSB3ZSBvbmx5IGhhdmUgYSBz
bWFsbCBudW1iZXIgb2YgYXR0cmlidXRlIGJpdHMuIEV2ZW4gd2l0aG91dCBjb21wbGV4IGNoYW5n
ZXMsIGl0CisgICAgICAgIHdvdWxkIGhhdmUgYmVlbiBwb3NzaWJsZSB0byByZWR1Y2UgdGhlIGF0
dHJpYnV0ZSBmaWVsZCBmcm9tIDMyIGJpdHMgdG8gMTYgYml0cy4gU3BlY2lmaWNhbGx5LCBwcmlv
cgorICAgICAgICB0byB0aGlzIGNoYW5nZSwgdGhlIGF0dHJpYnV0ZXMgZmllbGQgbmVlZGVkIDkg
Yml0cy4gVGhpcyBtYWRlIGl0IHZlcnkgdGVtcHRpbmcgdG8gdHJpbSBpdCBzbyB0aGF0CisgICAg
ICAgIGl0IGNvdWxkIGZpdCBpbiBhIGJ5dGUuCisKKyAgICAgICAgTHVja2lseSwgbWFueSBvZiB0
aGUgYXR0cmlidXRlcyBiaXRzIGFyZSBmb3IgdGhlIHN0YXRpYyBsb29rdXAgaGFzaHRhYmxlcyB0
aGF0IHdlIHVzZSBmb3IgbGF6aWx5CisgICAgICAgIGJ1aWxkaW5nIG9iamVjdHMgaW4gdGhlIHN0
YW5kYXJkIGxpYnJhcnkuIFRob3NlIGJpdHMgZG9uJ3QgbmVlZCB0byBzdGF5IGFyb3VuZCBhZnRl
ciB0aGUgcHJvcGVydHkKKyAgICAgICAgaGFzIGJlZW4gY3JlYXRlZCwgc2luY2UgdGhleSBhcmUg
anVzdCBmb3IgdGVsbGluZyB0aGUgY29kZSBpbiBMb29rdXAgaG93IHRvIGNyZWF0ZSB0aGUgcHJv
cGVydHkuCisgICAgICAgIFNvLCB0aGlzIGNoYW5nZSBzZXBhcmF0ZXMgdGhlIGF0dHJpYnV0ZXMg
Yml0cyBpbnRvIHRob3NlIHRoYXQgYXJlIGludGVyZXN0aW5nIGZvciBTdHJ1Y3R1cmUgYW5kCisg
ICAgICAgIHRob3NlIHRoYXQgYXJlbid0LiBUaGUgb25lcyB1c2VkIGJ5IFN0cnVjdHVyZSBzaXQg
aW4gdGhlIGxvdyA4IGJpdHMsIGFsbG93aW5nIGZvciB0aGUgYXR0cmlidXRlcworICAgICAgICBm
aWVsZCBpbiBQcm9wZXJ0eU1hcEVudHJ5IHRvIGJlIGEgdWludDhfdC4gVGhlIGF0dHJpYnV0ZXMg
Yml0cyB1c2VkIG9ubHkgYnkgTG9va3VwIHVzZSB0aGUgaGlnaGVyCisgICAgICAgIGJpdHMuIElu
IHByb2R1Y3Rpb24sIHRoZSBjb252ZXJzaW9uIGZyb20gdGhlIExvb2t1cCBhdHRyaWJ1dGVzIHRv
IHRoZSBTdHJ1Y3R1cmUgYXR0cmlidXRlcyBpcyBqdXN0CisgICAgICAgIGEgY2FzdCB0byB1aW50
OF90LiBJbiBkZWJ1Zywgd2UgYXNzZXJ0IHRoYXQgdGhvc2UgYml0cyBhcmUgbm90IGRyb3BwZWQg
YnkgYWNjaWRlbnQuIENvZGUgdGhhdAorICAgICAgICBpbnRlbnRpb25hbGx5IGRyb3BzIHRob3Nl
IGJpdHMgY2FsbHMgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgpLgorCisgICAgICAgIEl0IHR1cm5l
ZCBvdXQgdGhhdCB0aGVyZSB3YXMgYSBsb3Qgb2YgY29kZSB0aGF0IHdhcyB1c2luZyB0aGUgRnVu
Y3Rpb24gYml0IGV2ZW4gaW4gY29kZSB0aGF0IGRpZG4ndAorICAgICAgICBpbnZvbHZlIExvb2t1
cC4gVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0aG9zZSB1c2VzIG9mIEZ1bmN0aW9uLiBTdHJ1Y3R1cmUg
ZG9lcyBub3QgbmVlZCB0byBrbm93IGlmIHdlCisgICAgICAgIHRoaW5rIHRoYXQgYSBwcm9wZXJ0
eSBwb2ludHMgdG8gYSBmdW5jdGlvbi4KKworICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChH
bG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5jcHA6Cisg
ICAgICAgIChKU0M6OnNldFVwU3RhdGljRnVuY3Rpb25TbG90KToKKyAgICAgICAgKiBydW50aW1l
L0xvb2t1cC5oOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAoSlNDOjpnZXRTdGF0aWNWYWx1ZVNsb3QpOgorICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY1By
b3BlcnRpZXMpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL051bWJl
ckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5oOgorICAgICAgICAo
SlNDOjphdHRyaWJ1dGVzRm9yU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90
OjpzZXRWYWx1ZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6c2V0Q3VzdG9tKToKKyAg
ICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNoZWFibGVDdXN0b20pOgorICAgICAgICAo
SlNDOjpQcm9wZXJ0eVNsb3Q6OnNldEdldHRlclNsb3QpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0
eVNsb3Q6OnNldENhY2hlYWJsZUdldHRlclNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0
dXJlLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TWFwRW50cnk6OlByb3BlcnR5TWFwRW50cnkp
OgorCiAyMDE1LTA4LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgZml4IFByb3BlcnR5TmFtZTo6aXNOdWxsKCkgdGhhdCB3YXMgaW50cm9k
dWNlZCBpbiByMTg4OTk0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDE4OTEy
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
NDYsMTIgKzY0NiwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0
RWxlbWVudCIsIGZ1bmN0aW9uR2V0RWxlbWVudCwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAic2V0RWxlbWVudFJvb3QiLCBmdW5jdGlvblNldEVsZW1lbnRSb290LCAyKTsKICAgICAgICAg
Ci0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgIkRGR1RydWUiKSwgMCwgZnVuY3Rpb25GYWxzZTEsIERGR1RydWVJbnRy
aW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7Ci0gICAgICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIk9TUkV4aXQi
KSwgMCwgZnVuY3Rpb25VbmRlZmluZWQxLCBPU1JFeGl0SW50cmluc2ljLCBEb250RW51bSB8IEpT
Qzo6RnVuY3Rpb24pOwotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ZpbmFsVGllciIpLCAwLCBmdW5jdGlvbkZh
bHNlMiwgSXNGaW5hbFRpZXJJbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7Ci0g
ICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgInByZWRpY3RJbnQzMiIpLCAwLCBmdW5jdGlvblVuZGVmaW5lZDIsIFNldElu
dDMySGVhcFByZWRpY3Rpb25JbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7Ci0g
ICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImlzSW50MzIiKSwgMCwgZnVuY3Rpb25Jc0ludDMyLCBDaGVja0ludDMySW50
cmluc2ljLCBEb250RW51bSB8IEpTQzo6RnVuY3Rpb24pOwotICAgICAgICBwdXREaXJlY3ROYXRp
dmVGdW5jdGlvbih2bSwgdGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmaWF0SW50
NTIiKSwgMCwgZnVuY3Rpb25JZGVudGl0eSwgRmlhdEludDUySW50cmluc2ljLCBEb250RW51bSB8
IEpTQzo6RnVuY3Rpb24pOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhp
cywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJERkdUcnVlIiksIDAsIGZ1bmN0aW9uRmFs
c2UxLCBERkdUcnVlSW50cmluc2ljLCBEb250RW51bSk7CisgICAgICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIk9TUkV4aXQi
KSwgMCwgZnVuY3Rpb25VbmRlZmluZWQxLCBPU1JFeGl0SW50cmluc2ljLCBEb250RW51bSk7Cisg
ICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImlzRmluYWxUaWVyIiksIDAsIGZ1bmN0aW9uRmFsc2UyLCBJc0ZpbmFsVGll
ckludHJpbnNpYywgRG9udEVudW0pOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2
bSwgdGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJwcmVkaWN0SW50MzIiKSwgMCwg
ZnVuY3Rpb25VbmRlZmluZWQyLCBTZXRJbnQzMkhlYXBQcmVkaWN0aW9uSW50cmluc2ljLCBEb250
RW51bSk7CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgImlzSW50MzIiKSwgMCwgZnVuY3Rpb25Jc0ludDMyLCBDaGVj
a0ludDMySW50cmluc2ljLCBEb250RW51bSk7CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZpYXRJbnQ1MiIpLCAw
LCBmdW5jdGlvbklkZW50aXR5LCBGaWF0SW50NTJJbnRyaW5zaWMsIERvbnRFbnVtKTsKICAgICAg
ICAgCiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZWZmZWN0ZnVsNDIiLCBmdW5jdGlvbkVmZmVj
dGZ1bDQyLCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJtYWtlTWFzcXVlcmFkZXIiLCBm
dW5jdGlvbk1ha2VNYXNxdWVyYWRlciwgMCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAxODkxMjIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM1Miw3ICszNTIsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2
bSkKICNlbmRpZgogCiAgICAgbV9wYXJzZUludEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCB2bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUludC5zdHJp
bmcoKSwgZ2xvYmFsRnVuY1BhcnNlSW50LCBOb0ludHJpbnNpYykpOwotICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wYXJzZUludCwgbV9wYXJzZUlu
dEZ1bmN0aW9uLmdldCgpLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKKyAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cGFyc2VJbnQsIG1fcGFyc2VJbnRG
dW5jdGlvbi5nZXQoKSwgRG9udEVudW0pOwogCiAjZGVmaW5lIENSRUFURV9QUk9UT1RZUEVfRk9S
X1NJTVBMRV9UWVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNl
VHlwZSwganNOYW1lKSBcCiBtXyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLnNldCh2bSwgdGhp
cywgY2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBjYXBpdGFsTmFtZSMj
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSkpOyBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJ
KHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDYgQEAgQ09NUElMRV9BU1NFUlQoTm9u
ZSA8IEZpcnN0SW50ZXJuYWxBdHRyaQogQ09NUElMRV9BU1NFUlQoUmVhZE9ubHkgPCBGaXJzdElu
dGVybmFsQXR0cmlidXRlLCBSZWFkT25seV9pc19iZWxvd19GaXJzdEludGVybmFsQXR0cmlidXRl
KTsKIENPTVBJTEVfQVNTRVJUKERvbnRFbnVtIDwgRmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSwgRG9u
dEVudW1faXNfYmVsb3dfRmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSk7CiBDT01QSUxFX0FTU0VSVChE
b250RGVsZXRlIDwgRmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSwgRG9udERlbGV0ZV9pc19iZWxvd19G
aXJzdEludGVybmFsQXR0cmlidXRlKTsKLUNPTVBJTEVfQVNTRVJUKEZ1bmN0aW9uIDwgRmlyc3RJ
bnRlcm5hbEF0dHJpYnV0ZSwgRnVuY3Rpb25faXNfYmVsb3dfRmlyc3RJbnRlcm5hbEF0dHJpYnV0
ZSk7CiBDT01QSUxFX0FTU0VSVChBY2Nlc3NvciA8IEZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUsIEFj
Y2Vzc29yX2lzX2JlbG93X0ZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU0ZpbmFs
T2JqZWN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCShy
ZXZpc2lvbiAxODkxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCkBAIC01NiwxMSArNTYsMTEgQEAgYm9vbCBzZXRVcFN0YXRpY0Z1
bmN0aW9uU2xvdChFeGVjU3RhdGUqIAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
ICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgQnVpbHRpbikKLSAgICAgICAgICAgIHRoaXNP
YmotPnB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCks
IHByb3BlcnR5TmFtZSwgZW50cnktPmJ1aWx0aW5HZW5lcmF0b3IoKSh2bSksIGVudHJ5LT5hdHRy
aWJ1dGVzKCkpOworICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9u
KHZtLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBlbnRyeS0+YnVpbHRp
bkdlbmVyYXRvcigpKHZtKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRl
cygpKSk7CiAgICAgICAgIGVsc2UgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikg
ewogICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24oCiAgICAgICAg
ICAgICAgICAgdm0sIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIGVudHJ5
LT5mdW5jdGlvbkxlbmd0aCgpLAotICAgICAgICAgICAgICAgIGVudHJ5LT5mdW5jdGlvbigpLCBl
bnRyeS0+aW50cmluc2ljKCksIGVudHJ5LT5hdHRyaWJ1dGVzKCkpOworICAgICAgICAgICAgICAg
IGVudHJ5LT5mdW5jdGlvbigpLCBlbnRyeS0+aW50cmluc2ljKCksIGF0dHJpYnV0ZXNGb3JTdHJ1
Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgQVNTRVJUKGlzQWNjZXNzb3IpOwogICAgICAgICAgICAgcmVpZnlTdGF0aWNBY2Nlc3Nvcih2
bSwgKmVudHJ5LCAqdGhpc09iaiwgcHJvcGVydHlOYW1lKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0xvb2t1cC5oCShyZXZpc2lvbiAxODkxMjIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDExICsxODgs
MTEgQEAgaW5saW5lIGJvb2wgZ2V0U3RhdGljUHJvcGVydHlTbG90KEV4ZWNTdAogICAgICAgICBy
ZXR1cm4gc2V0VXBTdGF0aWNGdW5jdGlvblNsb3QoZXhlYywgZW50cnksIHRoaXNPYmosIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiAKICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIENvbnN0YW50
SW50ZWdlcikgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1
dGVzKCksIGpzTnVtYmVyKGVudHJ5LT5jb25zdGFudEludGVnZXIoKSkpOworICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmosIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0
ZXMoKSksIGpzTnVtYmVyKGVudHJ5LT5jb25zdGFudEludGVnZXIoKSkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqLCBl
bnRyeS0+YXR0cmlidXRlcygpLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CisgICAgc2xvdC5z
ZXRDYWNoZWFibGVDdXN0b20odGhpc09iaiwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+
YXR0cmlidXRlcygpKSwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC0yMjksMTEgKzIyOSwxMSBAQCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNWYWx1ZVNs
b3QoRXhlY1N0YXRlCiAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIEJ1aWx0aW5P
ckZ1bmN0aW9uT3JBY2Nlc3NvcikpOwogCiAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBD
b25zdGFudEludGVnZXIpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqLCBlbnRyeS0+
YXR0cmlidXRlcygpLCBqc051bWJlcihlbnRyeS0+Y29uc3RhbnRJbnRlZ2VyKCkpKTsKKyAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5h
dHRyaWJ1dGVzKCkpLCBqc051bWJlcihlbnRyeS0+Y29uc3RhbnRJbnRlZ2VyKCkpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhp
c09iaiwgZW50cnktPmF0dHJpYnV0ZXMoKSwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOworICAg
IHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmosIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
ZW50cnktPmF0dHJpYnV0ZXMoKSksIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtMjc5LDE4ICsyNzksMTkgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0
aWNQcm9wZXJ0aWVzKFZNJiB2bQogCiAgICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
Pih2YWx1ZS5tX2tleSksIHN0cmxlbih2YWx1ZS5tX2tleSkpOwogICAgICAgICBpZiAodmFsdWUu
YXR0cmlidXRlcygpICYgQnVpbHRpbikgewotICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3RC
dWlsdGluRnVuY3Rpb24odm0sIHRoaXNPYmouZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwg
dmFsdWUuYnVpbHRpbkdlbmVyYXRvcigpKHZtKSwgdmFsdWUuYXR0cmlidXRlcygpKTsKKyAgICAg
ICAgICAgIHRoaXNPYmoucHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCB0aGlzT2JqLmdsb2Jh
bE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLmJ1aWx0aW5HZW5lcmF0b3IoKSh2bSksIGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBG
dW5jdGlvbikgewotICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2
bSwgdGhpc09iai5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZS5mdW5jdGlvbkxl
bmd0aCgpLAotICAgICAgICAgICAgICAgIHZhbHVlLmZ1bmN0aW9uKCksIHZhbHVlLmludHJpbnNp
YygpLCB2YWx1ZS5hdHRyaWJ1dGVzKCkpOworICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3RO
YXRpdmVGdW5jdGlvbigKKyAgICAgICAgICAgICAgICB2bSwgdGhpc09iai5nbG9iYWxPYmplY3Qo
KSwgcHJvcGVydHlOYW1lLCB2YWx1ZS5mdW5jdGlvbkxlbmd0aCgpLAorICAgICAgICAgICAgICAg
IHZhbHVlLmZ1bmN0aW9uKCksIHZhbHVlLmludHJpbnNpYygpLCBhdHRyaWJ1dGVzRm9yU3RydWN0
dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgQ29uc3RhbnRJbnRlZ2VyKSB7
Ci0gICAgICAgICAgICB0aGlzT2JqLnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCBqc051bWJl
cih2YWx1ZS5jb25zdGFudEludGVnZXIoKSksIHZhbHVlLmF0dHJpYnV0ZXMoKSk7CisgICAgICAg
ICAgICB0aGlzT2JqLnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCBqc051bWJlcih2YWx1ZS5j
b25zdGFudEludGVnZXIoKSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRl
cygpKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0zMDAsNyArMzAx
LDcgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKFZNJiB2bQogICAgICAgICB9
CiAKICAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0
b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgdmFsdWUucHJvcGVydHlHZXR0ZXIoKSwgdmFsdWUu
cHJvcGVydHlQdXR0ZXIoKSk7Ci0gICAgICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNz
b3Iodm0sIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCB2YWx1ZS5hdHRyaWJ1dGVz
KCkpOworICAgICAgICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBwcm9wZXJ0
eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5h
dHRyaWJ1dGVzKCkpKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCShyZXZpc2lvbiAxODkxMjIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCkBAIC05NSw0MSArOTUsNDEgQEAgdm9pZCBNYXRoT2JqZWN0OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgIlNRUlQxXzIiKSwganNOdW1iZXIoc3FydCgwLjUpKSwgRG9udERl
bGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIlNRUlQyIiksIGpzTnVtYmVyKHNx
cnQoMi4wKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIAotICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhYnMiKSwgMSwgbWF0aFByb3RvRnVuY0FicywgQWJz
SW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5j
dGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCAiYWNvcyIpLCAxLCBtYXRoUHJvdG9GdW5jQUNvcywgTm9JbnRyaW5zaWMsIERv
bnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJh
c2luIiksIDEsIG1hdGhQcm90b0Z1bmNBU2luLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5j
dGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImF0YW4iKSwgMSwgbWF0
aFByb3RvRnVuY0FUYW4sIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYWNvc2giKSwgMSwgbWF0aFByb3RvRnVuY0FD
b3NoLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImFzaW5oIiksIDEsIG1hdGhQcm90b0Z1bmNBU2luaCwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJhdGFuaCIpLCAxLCBtYXRoUHJvdG9GdW5jQVRhbmgsIE5vSW50cmluc2ljLCBEb250
RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYXRh
bjIiKSwgMiwgbWF0aFByb3RvRnVuY0FUYW4yLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5j
dGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNicnQiKSwgMSwgbWF0
aFByb3RvRnVuY0NicnQsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2VpbCIpLCAxLCBtYXRoUHJvdG9GdW5jQ2Vp
bCwgQ2VpbEludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImNsejMyIiksIDEsIG1hdGhQcm90b0Z1bmNDbHozMiwgQ2x6MzJJ
bnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJjb3MiKSwgMSwgbWF0aFByb3RvRnVuY0NvcywgQ29zSW50cmluc2ljLCBEb250
RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY29z
aCIpLCAxLCBtYXRoUHJvdG9GdW5jQ29zaCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rp
b24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJleHAiKSwgMSwgbWF0aFBy
b3RvRnVuY0V4cCwgRXhwSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZXhwbTEiKSwgMSwgbWF0aFByb3RvRnVuY0V4cG0x
LCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZl
RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgImZsb29yIiksIDEsIG1hdGhQcm90b0Z1bmNGbG9vciwgRmxvb3JJbnRy
aW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJmcm91bmQiKSwgMSwgbWF0aFByb3RvRnVuY0Zyb3VuZCwgRlJvdW5kSW50cmluc2lj
LCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAiaHlwb3QiKSwgMiwgbWF0aFByb3RvRnVuY0h5cG90LCBOb0ludHJpbnNpYywgRG9udEVudW0g
fCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlv
bih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImxvZyIpLCAx
LCBtYXRoUHJvdG9GdW5jTG9nLCBMb2dJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwot
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJsb2cxMCIpLCAxLCBtYXRoUHJvdG9G
dW5jTG9nMTAsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nMXAiKSwgMSwgbWF0aFByb3RvRnVuY0xvZzFwLCBO
b0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImxvZzIiKSwgMSwgbWF0aFByb3RvRnVuY0xvZzIsIE5vSW50cmluc2ljLCBE
b250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
bWF4IiksIDIsIG1hdGhQcm90b0Z1bmNNYXgsIE1heEludHJpbnNpYywgRG9udEVudW0gfCBGdW5j
dGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIm1pbiIpLCAyLCBtYXRo
UHJvdG9GdW5jTWluLCBNaW5JbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJwb3ciKSwgMiwgbWF0aFByb3RvRnVuY1Bvdywg
UG93SW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAicmFuZG9tIiksIDAsIG1hdGhQcm90b0Z1bmNSYW5kb20sIE5vSW50cmlu
c2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAicm91bmQiKSwgMSwgbWF0aFByb3RvRnVuY1JvdW5kLCBSb3VuZEludHJpbnNpYywgRG9u
dEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJh
bnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNp
Z24iKSwgMSwgbWF0aFByb3RvRnVuY1NpZ24sIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0
aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2luIiksIDEsIG1hdGhQ
cm90b0Z1bmNTaW4sIFNpbkludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNpbmgiKSwgMSwgbWF0aFByb3RvRnVuY1Npbmgs
IE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAic3FydCIpLCAxLCBtYXRoUHJvdG9GdW5jU3FydCwgU3FydEludHJpbnNp
YywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgInRhbiIpLCAxLCBtYXRoUHJvdG9GdW5jVGFuLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBG
dW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInRhbmgiKSwgMSwg
bWF0aFByb3RvRnVuY1RhbmgsIE5vSW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKLSAg
ICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidHJ1bmMiKSwgMSwgbWF0aFByb3RvRnVu
Y1RydW5jLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0
TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgImltdWwiKSwgMiwgbWF0aFByb3RvRnVuY0lNdWwsIElNdWxJ
bnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJhYnMiKSwgMSwgbWF0aFByb3RvRnVuY0FicywgQWJzSW50cmluc2ljLCBEb250
RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFjb3MiKSwgMSwgbWF0
aFByb3RvRnVuY0FDb3MsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImFzaW4iKSwgMSwgbWF0aFByb3RvRnVuY0FTaW4sIE5vSW50cmlu
c2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNp
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImF0YW4i
KSwgMSwgbWF0aFByb3RvRnVuY0FUYW4sIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImFjb3NoIiksIDEsIG1hdGhQcm90b0Z1bmNBQ29z
aCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAiYXNpbmgiKSwgMSwgbWF0aFByb3RvRnVuY0FTaW5oLCBOb0ludHJpbnNpYywgRG9udEVu
dW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhdGFuaCIpLCAxLCBtYXRo
UHJvdG9GdW5jQVRhbmgsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImF0YW4yIiksIDIsIG1hdGhQcm90b0Z1bmNBVGFuMiwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2Jy
dCIpLCAxLCBtYXRoUHJvdG9GdW5jQ2JydCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2VpbCIpLCAxLCBtYXRoUHJvdG9GdW5jQ2Vp
bCwgQ2VpbEludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJjbHozMiIpLCAxLCBtYXRoUHJvdG9GdW5jQ2x6MzIsIENsejMySW50cmluc2ljLCBE
b250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNvcyIpLCAxLCBt
YXRoUHJvdG9GdW5jQ29zLCBDb3NJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiY29zaCIpLCAxLCBtYXRoUHJvdG9GdW5jQ29zaCwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZXhw
IiksIDEsIG1hdGhQcm90b0Z1bmNFeHAsIEV4cEludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJleHBtMSIpLCAxLCBtYXRoUHJvdG9GdW5jRXhw
bTEsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImZsb29yIiksIDEsIG1hdGhQcm90b0Z1bmNGbG9vciwgRmxvb3JJbnRyaW5zaWMsIERv
bnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZt
LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZnJvdW5kIiksIDEs
IG1hdGhQcm90b0Z1bmNGcm91bmQsIEZSb3VuZEludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJoeXBvdCIpLCAyLCBtYXRoUHJvdG9GdW5jSHlw
b3QsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImxvZyIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nLCBMb2dJbnRyaW5zaWMsIERvbnRFbnVt
KTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibG9nMTAiKSwgMSwgbWF0aFBy
b3RvRnVuY0xvZzEwLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJsb2cxcCIpLCAxLCBtYXRoUHJvdG9GdW5jTG9nMXAsIE5vSW50cmlu
c2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNp
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImxvZzIi
KSwgMSwgbWF0aFByb3RvRnVuY0xvZzIsIE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIm1heCIpLCAyLCBtYXRoUHJvdG9GdW5jTWF4LCBN
YXhJbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAibWluIiksIDIsIG1hdGhQcm90b0Z1bmNNaW4sIE1pbkludHJpbnNpYywgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJwb3ciKSwgMiwgbWF0aFByb3RvRnVu
Y1BvdywgUG93SW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rp
b25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgInJhbmRvbSIpLCAwLCBtYXRoUHJvdG9GdW5jUmFuZG9tLCBOb0ludHJpbnNpYywg
RG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJyb3VuZCIpLCAx
LCBtYXRoUHJvdG9GdW5jUm91bmQsIFJvdW5kSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNpZ24iKSwgMSwgbWF0aFByb3RvRnVuY1NpZ24s
IE5vSW50cmluc2ljLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgInNpbiIpLCAxLCBtYXRoUHJvdG9GdW5jU2luLCBTaW5JbnRyaW5zaWMsIERvbnRFbnVtKTsK
KyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2luaCIpLCAxLCBtYXRoUHJvdG9G
dW5jU2luaCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5j
dGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCAic3FydCIpLCAxLCBtYXRoUHJvdG9GdW5jU3FydCwgU3FydEludHJpbnNpYywg
RG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ0YW4iKSwgMSwg
bWF0aFByb3RvRnVuY1RhbiwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAidGFuaCIpLCAxLCBtYXRoUHJvdG9GdW5jVGFuaCwgTm9JbnRy
aW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidHJ1
bmMiKSwgMSwgbWF0aFByb3RvRnVuY1RydW5jLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpbXVsIiksIDIsIG1hdGhQcm90b0Z1bmNJ
TXVsLCBJTXVsSW50cmluc2ljLCBEb250RW51bSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAsMjAwMyBIYXJyaSBQb3J0ZW4gKHBv
cnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAy
MDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKQEAgLTY4LDEyICs2OCwxMiBAQCB2b2lkIE51bWJlckNvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihWCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCAiUE9TSVRJVkVfSU5GSU5JVFkiKSwganNEb3VibGVOdW1iZXIoc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKSwgRG9udERlbGV0ZSB8IERvbnRF
bnVtIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIk5hTiIpLCBqc05hTigpLCBEb250RGVsZXRlIHwgRG9u
dEVudW0gfCBSZWFkT25seSk7CiAKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImlzRmluaXRlIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lz
RmluaXRlLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0
TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ludGVnZXIiKSwgMSwg
bnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBG
dW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2
bSwgbnVtYmVyUHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJpc05hTiIpLCAxLCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc05hTiwgTm9JbnRyaW5z
aWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNTYWZlSW50ZWdlciIpLCAxLCBudW1iZXJDb25zdHJ1
Y3RvckZ1bmNJc1NhZmVJbnRlZ2VyLCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7
Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgbnVtYmVy
UHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJw
YXJzZUZsb2F0IiksIDEsIGdsb2JhbEZ1bmNQYXJzZUZsb2F0LCBOb0ludHJpbnNpYywgRG9udEVu
dW0gfCBGdW5jdGlvbik7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicGFyc2VJbnQiKSwgbnVtYmVyUHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKS0+cGFyc2VJbnRGdW5jdGlvbigpLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKKyAg
ICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBudW1iZXJQcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImlzRmlu
aXRlIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzRmluaXRlLCBOb0ludHJpbnNpYywgRG9u
dEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0s
IG51bWJlclByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAiaXNJbnRlZ2VyIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlciwgTm9J
bnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRU
cmFuc2l0aW9uKHZtLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImlzTmFOIiksIDEsIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzTmFO
LCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCksIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNTYWZlSW50ZWdlciIpLCAxLCBudW1iZXJDb25zdHJ1
Y3RvckZ1bmNJc1NhZmVJbnRlZ2VyLCBOb0ludHJpbnNpYywgRG9udEVudW0pOworICAgIHB1dERp
cmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIG51bWJlclByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicGFyc2VGbG9hdCIp
LCAxLCBnbG9iYWxGdW5jUGFyc2VGbG9hdCwgTm9JbnRyaW5zaWMsIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJwYXJzZUludCIpLCBudW1iZXJQcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpLT5wYXJzZUludEZ1
bmN0aW9uKCksIERvbnRFbnVtKTsKIH0KIAogLy8gRUNNQSAxNS43LjEKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCShyZXZpc2lvbiAxODkxMjIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsMTYgKzQwLDI0IEBAIGVudW0gQXR0cmlidXRlIHsKICAgICBSZWFkT25s
eSAgICAgICAgICA9IDEgPDwgMSwgIC8vIHByb3BlcnR5IGNhbiBiZSBvbmx5IHJlYWQsIG5vdCB3
cml0dGVuCiAgICAgRG9udEVudW0gICAgICAgICAgPSAxIDw8IDIsICAvLyBwcm9wZXJ0eSBkb2Vz
bid0IGFwcGVhciBpbiAoZm9yIC4uIGluIC4uKQogICAgIERvbnREZWxldGUgICAgICAgID0gMSA8
PCAzLCAgLy8gcHJvcGVydHkgY2FuJ3QgYmUgZGVsZXRlZAotICAgIEZ1bmN0aW9uICAgICAgICAg
ID0gMSA8PCA0LCAgLy8gcHJvcGVydHkgaXMgYSBmdW5jdGlvbiAtIG9ubHkgdXNlZCBieSBzdGF0
aWMgaGFzaHRhYmxlcwotICAgIEFjY2Vzc29yICAgICAgICAgID0gMSA8PCA1LCAgLy8gcHJvcGVy
dHkgaXMgYSBnZXR0ZXIvc2V0dGVyCi0gICAgQ3VzdG9tQWNjZXNzb3IgICAgPSAxIDw8IDYsCi0g
ICAgQnVpbHRpbiAgICAgICAgICAgPSAxIDw8IDcsIC8vIHByb3BlcnR5IGlzIGEgYnVpbHRpbiBm
dW5jdGlvbiAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwotICAgIENvbnN0YW50SW50
ZWdlciAgID0gMSA8PCA4LCAvLyBwcm9wZXJ0eSBpcyBhIGNvbnN0YW50IGludGVnZXIgLSBvbmx5
IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKKyAgICBBY2Nlc3NvciAgICAgICAgICA9IDEgPDwg
NCwgIC8vIHByb3BlcnR5IGlzIGEgZ2V0dGVyL3NldHRlcgorICAgIEN1c3RvbUFjY2Vzc29yICAg
ID0gMSA8PCA1LAorCisgICAgLy8gVGhpbmdzIHRoYXQgYXJlIHVzZWQgYnkgc3RhdGljIGhhc2h0
YWJsZXMgYXJlIG5vdCBpbiB0aGUgYXR0cmlidXRlcyBieXRlIGluIFByb3BlcnR5TWFwRW50cnku
CisgICAgRnVuY3Rpb24gICAgICAgICAgPSAxIDw8IDgsICAvLyBwcm9wZXJ0eSBpcyBhIGZ1bmN0
aW9uIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCisgICAgQnVpbHRpbiAgICAgICAg
ICAgPSAxIDw8IDksICAvLyBwcm9wZXJ0eSBpcyBhIGJ1aWx0aW4gZnVuY3Rpb24gLSBvbmx5IHVz
ZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKKyAgICBDb25zdGFudEludGVnZXIgICA9IDEgPDwgMTAs
IC8vIHByb3BlcnR5IGlzIGEgY29uc3RhbnQgaW50ZWdlciAtIG9ubHkgdXNlZCBieSBzdGF0aWMg
aGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9uLCAv
LyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVu
Y3Rpb25PckFjY2Vzc29yID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IsIC8vIGhlbHBl
ciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbk9y
QWNjZXNzb3JPckNvbnN0YW50ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDb25z
dGFudEludGVnZXIsIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKIH07
CiAKK2lubGluZSB1bnNpZ25lZCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHVuc2lnbmVkIGF0dHJp
YnV0ZXMpCit7CisgICAgLy8gVGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgdXNlZCBqdXN0IGZvciB0
aGUgc3RhdGljIGhhc2h0YWJsZSBhcmUgYXQgYml0IDggYW5kIGhpZ2hlci4KKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dWludDhfdD4oYXR0cmlidXRlcyk7Cit9CisKIGNsYXNzIFByb3BlcnR5U2xv
dCB7CiAgICAgZW51bSBQcm9wZXJ0eVR5cGUgewogICAgICAgICBUeXBlVW5zZXQsCkBAIC0xMjUs
NiArMTMzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWYWx1ZShKU09iamVjdCogc2xvdEJh
c2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTVmFsdWUgdmFsdWUpCiAgICAgeworICAgICAgICBB
U1NFUlQoYXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGF0dHJpYnV0ZXMpKTsK
KyAgICAgICAgCiAgICAgICAgIG1fZGF0YS52YWx1ZSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSk7
CiAgICAgICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CiAKQEAgLTEzNiw2ICsxNDYsOCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRWYWx1ZShKU09iamVjdCogc2xvdEJhc2UsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMsIEpTVmFsdWUgdmFsdWUsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkK
ICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAg
ICAgbV9kYXRhLnZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKICAgICAgICAgbV9hdHRy
aWJ1dGVzID0gYXR0cmlidXRlczsKQEAgLTE0OCw2ICsxNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldFZhbHVlKEpTU3RyaW5nKiwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNWYWx1ZSB2YWx1
ZSkKICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1
Y3R1cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAg
ICAgICAgbV9kYXRhLnZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKICAgICAgICAgbV9h
dHRyaWJ1dGVzID0gYXR0cmlidXRlczsKQEAgLTE1OSw2ICsxNzMsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldEN1c3RvbShKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMs
IEdldFZhbHVlRnVuYyBnZXRWYWx1ZSkKICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVz
ID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAg
ICAgQVNTRVJUKGdldFZhbHVlKTsKICAgICAgICAgbV9kYXRhLmN1c3RvbS5nZXRWYWx1ZSA9IGdl
dFZhbHVlOwogICAgICAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwpAQCAtMTcxLDYgKzE4
Nyw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVj
dCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSkK
ICAgICB7CisgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoYXR0cmlidXRlcykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKGdldFZhbHVlKTsKICAg
ICAgICAgbV9kYXRhLmN1c3RvbS5nZXRWYWx1ZSA9IGdldFZhbHVlOwogICAgICAgICBtX2F0dHJp
YnV0ZXMgPSBhdHRyaWJ1dGVzOwpAQCAtMTgzLDYgKzIwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0R2V0dGVyU2xvdChKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMs
IEdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGF0dHJp
YnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CisgICAgICAgIAog
ICAgICAgICBBU1NFUlQoZ2V0dGVyU2V0dGVyKTsKICAgICAgICAgbV9kYXRhLmdldHRlci5nZXR0
ZXJTZXR0ZXIgPSBnZXR0ZXJTZXR0ZXI7CiAgICAgICAgIG1fYXR0cmlidXRlcyA9IGF0dHJpYnV0
ZXM7CkBAIC0xOTUsNiArMjE1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDYWNoZWFibGVH
ZXR0ZXJTbG90KEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0dGVy
U2V0dGVyKiBnZXR0ZXJTZXR0ZXIsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAgICB7CisgICAg
ICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRl
cykpOworICAgICAgICAKICAgICAgICAgQVNTRVJUKGdldHRlclNldHRlcik7CiAgICAgICAgIG1f
ZGF0YS5nZXR0ZXIuZ2V0dGVyU2V0dGVyID0gZ2V0dGVyU2V0dGVyOwogICAgICAgICBtX2F0dHJp
YnV0ZXMgPSBhdHRyaWJ1dGVzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgJKHJldmlzaW9uIDE4OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBvdXRPZkxpbmVHcm93dGhGYWMKIHN0cnVjdCBQcm9wZXJ0eU1hcEVu
dHJ5IHsKICAgICBVbmlxdWVkU3RyaW5nSW1wbCoga2V5OwogICAgIFByb3BlcnR5T2Zmc2V0IG9m
ZnNldDsKLSAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOworICAgIHVpbnQ4X3QgYXR0cmlidXRlczsK
IAogICAgIFByb3BlcnR5TWFwRW50cnkoKQogICAgICAgICA6IGtleShudWxscHRyKQpAQCAtOTQs
NiArOTQsNyBAQCBzdHJ1Y3QgUHJvcGVydHlNYXBFbnRyeSB7CiAgICAgICAgICwgb2Zmc2V0KG9m
ZnNldCkKICAgICAgICAgLCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiAgICAgeworICAgICAgICBB
U1NFUlQodGhpcy0+YXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzKTsKICAgICB9CiB9OwogCg==
</data>
<flag name="review"
          id="285431"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>