<?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>73307</bug_id>
          
          <creation_ts>2011-11-29 04:19:54 -0800</creation_ts>
          <short_desc>Implement the [NamedConstructor] IDL in CodeGeneratorJS.pm</short_desc>
          <delta_ts>2011-11-30 21:32:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>dominicc</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510682</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-11-29 04:19:54 -0800</bug_when>
    <thetext>CodeGeneratorV8.pm has already implemented the [NamedConstructor] IDL. CodeGeneratorJS.pm should also implement it.

The spec: http://www.w3.org/TR/WebIDL/#NamedConstructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510685</commentid>
    <comment_count>1</comment_count>
      <attachid>116945</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-11-29 04:26:11 -0800</bug_when>
    <thetext>Created attachment 116945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510824</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-29 09:07:39 -0800</bug_when>
    <thetext>It&apos;s not 100% clear to me why the notion of a named constructor is tied up with the notion of the constructor taking a Document as an argument.  We&apos;ve used CallWith=ScriptExecutionContext for that elsewhere.  That said, this seems fine if all our uses take a Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511453</commentid>
    <comment_count>3</comment_count>
      <attachid>116945</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 00:09:18 -0800</bug_when>
    <thetext>Comment on attachment 116945
Patch

Rejecting attachment 116945 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
11 lines).
Hunk #9 succeeded at 3558 (offset 111 lines).
Hunk #10 succeeded at 3572 (offset 111 lines).
1 out of 10 hunks FAILED -- saving rejects to file Source/WebCore/bindings/scripts/CodeGeneratorJS.pm.rej
patching file Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp
patching file Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10697090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511458</commentid>
    <comment_count>4</comment_count>
      <attachid>117135</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-11-30 00:23:04 -0800</bug_when>
    <thetext>Created attachment 117135
rebased patch for commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511714</commentid>
    <comment_count>5</comment_count>
      <attachid>117135</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 06:56:06 -0800</bug_when>
    <thetext>Comment on attachment 117135
rebased patch for commit

Clearing flags on attachment: 117135

Committed r101508: &lt;http://trac.webkit.org/changeset/101508&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116945</attachid>
            <date>2011-11-29 04:26:11 -0800</date>
            <delta_ts>2011-11-30 00:09:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73307-20111129212608.patch</filename>
            <type>text/plain</type>
            <size>20468</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZjNTdiOWVkMzNjMTYz
NTA5MDFjZTdkNDI4OTVjZTNjMTI0ZWNkYS4uZDE2YTVmZDFjYmMyZGFlNjBiODVhOWM1MDUzOTVm
N2E5NDgzZGJkMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTExLTI5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgdGhl
IFtOYW1lZENvbnN0cnVjdG9yXSBJREwgaW4gQ29kZUdlbmVyYXRvckpTLnBtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyB0aGUgW05hbWVkQ29uc3RydWN0b3JdIElETCBmb3IgSlNDLgorICAgICAgICBUaGUgc3BlYzog
aHR0cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNOYW1lZENvbnN0cnVjdG9yCisKKyAgICAgICAg
VGVzdHM6IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmlk
bAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlcik6IFJlbW92ZWQgdW5uZWNlc3NhcnkgY29uZGl0aW9ucyAnJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0nLgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IENhbGxzIEdlbmVyYXRlQ29uc3RydWN0b3JE
ZWZpbml0aW9uKCkgdG8gZ2VuZXJhdGUgYSBOYW1lZENvbnN0cnVjdG9yLgorICAgICAgICAoR2Vu
ZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKTogR2VuZXJhdGVzIGEgaGVhZGVyIGZvciBhIE5h
bWVkQ29uc3RydWN0b3IuCisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6
IEdlbmVyYXRlcyBhIE5hbWVkQ29uc3RydWN0b3IgaW1wbGVtZW50YXRpb24gYW5kIGdldENvbnN0
cnVjdERhdGEoKSBmb3IgdGhlIE5hbWVkQ29uc3RydWN0b3IuCisgICAgICAgIChJc0NvbnN0cnVj
dGFibGUpOiBBZGRlZCBhIE5hbWVkQ29uc3RydWN0b3IgY29uZGl0aW9uLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOiBVcGRh
dGVkIGEgcnVuLWJpbmRpbmdzLXRlc3RzIHJlc3VsdC4KKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
TmFtZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yTmFtZWRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVGVzdE5h
bWVkQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ck5hbWVkQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0xMS0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMTIw
Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggY2FjMzUwYjQ5NDE1MzFiODZhNzQyYTg3MmJiMjVjMjMwOGY0YjY5OC4uMjcy
MjBlMjQ0NzRkYTU2YTY3MTI3MWZhNTA5OWRjOWVhODZjNDk4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTEwNzEsNyAr
MTA3MSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
In07XG5cbiIpOwogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
Q3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21Db25zdHJ1Y3RvciJ9IHx8ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJP
bWl0Q29uc3RydWN0b3IifSkgeworICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyJKU0RP
TUJpbmRpbmcuaCJ9ID0gMTsKICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9u
KFxAaGVhZGVyQ29udGVudCwgJGNsYXNzTmFtZSwgJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSk7
CiAgICAgfQpAQCAtMTM4Miw2ICsxMzgyLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
IAogICAgICAgICBteSAkcHJvdG9DbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9UHJvdG90eXBlIjsK
ICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oXEBpbXBsQ29udGVudCwgJGNs
YXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJmYWNlTmFtZSwgJHZpc2libGVDbGFzc05h
bWUsICRkYXRhTm9kZSk7CisgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWZpbml0aW9uKFxAaW1wbENvbnRlbnQsICRjbGFzc05hbWUsICRwcm90b0NsYXNzTmFtZSwg
JGludGVyZmFjZU5hbWUsICR2aXNpYmxlQ2xhc3NOYW1lLCAkZGF0YU5vZGUsICJHZW5lcmF0aW5n
TmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICB9CiAgICAgfQogCiAgICAgIyAtIEFkZCBmdW5j
dGlvbnMgYW5kIGNvbnN0YW50cyB0byBhIGhhc2h0YWJsZSBkZWZpbml0aW9uCkBAIC0zMjM0LDcg
KzMyMzcsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAicHJvdGVjdGVkOlxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBET01Db25z
dHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7XG4iKTsKIAotICAgIGlmIChJc0NvbnN0cnVj
dGFibGUoJGRhdGFOb2RlKSkgeworICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGRhdGFOb2RlKSAm
JiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7
CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShKU0M6OkV4ZWNTdGF0ZSop
O1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNvbnN0cnVjdERh
dGEmKTtcbiIpOwogICAgIH0KQEAgLTMyNDMsNiArMzI0NiwzNiBAQCBzdWIgR2VuZXJhdGVDb25z
dHJ1Y3RvckRlY2xhcmF0aW9uCiAgICAgaWYgKElzQ29uc3RydWN0b3JUZW1wbGF0ZSgkZGF0YU5v
ZGUsICJFdmVudCIpKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgZmlsbCR7
aW50ZXJmYWNlTmFtZX1Jbml0KCR7aW50ZXJmYWNlTmFtZX1Jbml0JiwgSlNEaWN0aW9uYXJ5Jik7
XG5cbiIpOwogICAgIH0KKworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCA8PEVO
RCk7CitjbGFzcyBKUyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVjdG9yIDogcHVibGljIERP
TUNvbnN0cnVjdG9yV2l0aERvY3VtZW50IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIERPTUNvbnN0
cnVjdG9yV2l0aERvY3VtZW50IEJhc2U7CisKKyAgICBzdGF0aWMgSlMke2ludGVyZmFjZU5hbWV9
TmFtZWRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIHsK
KyAgICAgICAgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1Y3RvciogY29uc3RydWN0b3Ig
PSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0
b3I+KCpleGVjLT5oZWFwKCkpKSBKUyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVjdG9yKHN0
cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAg
ICB9CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOworICAg
IH0KKworICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CisKK3ByaXZhdGU6
CisgICAgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RKUyR7aW50ZXJmYWNlTmFtZX0oSlNDOjpFeGVjU3RhdGUqKTsK
KyAgICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0Nl
bGwqLCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKK307CisKK0VORAorICAgIH0KIH0KIAog
c3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCkBAIC0zMjU0LDM4ICszMjg3LDU0IEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gc2hpZnQ7CiAgICAgbXkgJHZpc2libGVDbGFzc05hbWUgPSBzaGlmdDsKICAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IgPSBzaGlm
dDsKIAotICAgIG15ICRjb25zdHJ1Y3RvckNsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Db25zdHJ1
Y3RvciI7CisgICAgbXkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lID0gJGdlbmVyYXRpbmdOYW1lZENv
bnN0cnVjdG9yID8gIiR7Y2xhc3NOYW1lfU5hbWVkQ29uc3RydWN0b3IiIDogIiR7Y2xhc3NOYW1l
fUNvbnN0cnVjdG9yIjsKICAgICBteSAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JQYXJhbWV0ZXJzIn07CiAK
LSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3JcIiwg
JkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRh
YmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCRjb25zdHJ1Y3RvckNsYXNzTmFtZSkgfTtcblxu
Iik7Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
OiBET01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdClcbiIpOwotICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CisgICAgaWYgKCRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvcikgeworICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3JcIiwgJkRPTUNv
bnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoJGNvbnN0
cnVjdG9yQ2xhc3NOYW1lKSB9O1xuXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OiR7Y29uc3RydWN0b3JDbGFzc05hbWV9KFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50
KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIntcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImNvbnN0IENsYXNzSW5mbyAke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUNsYXNzTmFtZX1Db25z
dHJ1Y3RvclwiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgJiR7Y29uc3RydWN0b3JD
bGFzc05hbWV9VGFibGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoJGNvbnN0cnVjdG9yQ2xhc3NO
YW1lKSB9O1xuXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX06OiR7Y29uc3RydWN0b3JDbGFzc05hbWV9KFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0KVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOworICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgIH0KIAogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgInZvaWQgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpO1xuIik7Ci0gICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7XG4iKTsKICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7
XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVj
dChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGds
b2JhbE9iamVjdC0+cHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4iKTsKKyAg
ICB9IGVsc2lmICgkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKKyAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7Y2xh
c3NOYW1lfVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTtcbiIpOwog
ICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpO1xuIik7CiAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZihleGVj
LCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CiAgICAgfQogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigke251bWJlck9mY29uc3RydWN0
UGFyYW1ldGVyc30pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4iKSBpZiAk
bnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFz
c05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7
Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0s
IEpTRE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHN0YXRp
Y19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgIGlmICghJGdl
bmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
ImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xu
Iik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVTbG90PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICYke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3Rh
dGljVmFsdWVEZXNjcmlwdG9yPCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+
KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2NvbnN0
cnVjdG9yQ2xhc3NOYW1lfSo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4i
KTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX0sIEpTRE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9
VGFibGUsIHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4ob2JqZWN0KSwgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICJ9XG5cbiIpOworICAgIH0KIAogICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGRhdGFOb2RlKSkg
ewogICAgICAgICBpZiAoSXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRkYXRhTm9kZSwgIkV2ZW50Iikp
IHsKQEAgLTMzNTIsNyArMzQwMSw3IEBAIEVORAogfQogCiBFTkQKLSAgICAgICAgfSBlbHNpZiAo
ISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUNvbnN0cnVjdG9yIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkp
IHsKKyAgICAgICAgfSBlbHNpZiAoISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJK
U0N1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tQ29uc3RydWN0b3IifSkgJiYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJOYW1lZENvbnN0cnVjdG9yIn0gfHwgJGdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSkgewog
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0JHtjbGFzc05hbWV9KEV4ZWNT
dGF0ZSogZXhlYylcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CiAKQEAgLTMzODIsNiArMzQzMSw5IEBAIEVORAogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBpZiAoIWNvbnRleHQpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVm
ZXJlbmNlRXJyb3IoZXhlYywgXCIke2ludGVyZmFjZU5hbWV9IGNvbnN0cnVjdG9yIGFzc29jaWF0
ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGVcIikpO1xuIik7CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoJGdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSB7CisgICAgICAgICAgICAg
ICAgcHVzaChAY29uc3RydWN0b3JBcmdMaXN0LCAianNDb25zdHJ1Y3Rvci0+ZG9jdW1lbnQoKSIp
OworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkaW5kZXggPSAwOwogICAgICAgICAg
ICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKQEAg
LTMzOTQsNyArMzQ0NiwxMiBAQCBFTkQKICAgICAgICAgICAgICAgICBwdXNoKEBjb25zdHJ1Y3Rv
ckFyZ0xpc3QsICJlYyIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbXkgJGNvbnN0cnVj
dG9yQXJnID0gam9pbigiLCAiLCBAY29uc3RydWN0b3JBcmdMaXN0KTsKLSAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8JHtpbnRlcmZhY2VOYW1lfT4gb2JqZWN0ID0g
JHtpbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKCR7Y29uc3RydWN0b3JBcmd9KTtcbiIpOworICAgICAg
ICAgICAgaWYgKCRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvcikgeworICAgICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8JHtpbnRlcmZhY2VOYW1lfT4gb2JqZWN0
ID0gJHtpbnRlcmZhY2VOYW1lfTo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcigke2NvbnN0cnVjdG9y
QXJnfSk7XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjwke2ludGVyZmFjZU5hbWV9PiBvYmplY3QgPSAke2lu
dGVyZmFjZU5hbWV9OjpjcmVhdGUoJHtjb25zdHJ1Y3RvckFyZ30pO1xuIik7CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
b25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbiJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGlmIChlYykge1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIik7CkBAIC0z
NDA2LDExICszNDYzLDEzIEBAIEVORAogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
fVxuXG4iKTsKICAgICAgICAgfQogCi0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkNvbnN0
cnVjdFR5cGUgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSlcbiIpOwotICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJ7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0JHtjbGFzc05hbWV9O1xuIik7Ci0g
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7
XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICAgICAgaWYg
KCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0gfHwg
JGdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSB7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJDb25zdHJ1Y3RUeXBlICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0
JHtjbGFzc05hbWV9O1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
cmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0O1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJ9XG5cbiIpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zNDE4LDcgKzM0Nzcs
NyBAQCBzdWIgSXNDb25zdHJ1Y3RhYmxlCiB7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAK
LSAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3Ry
dWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUNvbnN0
cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3Ii
fSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NvbnN0cnVjdG9yVGVtcGxh
dGUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclRlbXBs
YXRlIn07CisgICAgcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0
b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0
cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1
Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ29uc3RydWN0b3JU
ZW1wbGF0ZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9y
VGVtcGxhdGUifTsKIH0KIAogc3ViIElzQ29uc3RydWN0b3JUZW1wbGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGI3M2Y4ODA4NmIzNmI3MjU0NTUxNDYzOTg4Y2Rh
MTNhMjYwNTg0ZWYuLmYyMTVmYWY0ZjZlN2FlN2Q5NjE4NTg0M2IwOTQwNDk1YTU2YTUxNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxLDcgKzIxLDEwIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oIgog
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIlRlc3ROYW1lZENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAg
LTkzLDYgKzk2LDQ5IEBAIGJvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjCiAgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IsIEpT
RE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvclRhYmxl
LCBzdGF0aWNfY2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IqPihvYmplY3Qp
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCitjb25zdCBDbGFzc0luZm8gSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZENv
bnN0cnVjdG9yQ29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgMCwg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1
Y3RvcikgfTsKKworSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OkpTVGVz
dE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29uc3RydWN0b3JXaXRo
RG9jdW1lbnQoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCit7Cit9CisKK3ZvaWQgSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
CisgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZTo6c2VsZihleGVjLCBn
bG9iYWxPYmplY3QpLCBOb25lKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0TmFt
ZWRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvck5hbWVkQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1Rlc3RO
YW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwor
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGNvbnN0IFN0cmluZyYgc3RyMSh1c3RyaW5n
VG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZp
bmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVj
LCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgIGNvbnN0IFN0cmluZyYgc3RyMih1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoZXhlYywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBV
U3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRl
ZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIGNvbnN0
IFN0cmluZyYgc3RyMyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMiwgTWlzc2luZ0lzRW1wdHkpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDIsIE1pc3NpbmdJc0VtcHR5KS50b1N0cmluZyhleGVjKSkpOwor
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBSZWZQdHI8VGVzdE5hbWVkQ29uc3RydWN0b3I+IG9i
amVjdCA9IFRlc3ROYW1lZENvbnN0cnVjdG9yOjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKGpzQ29u
c3RydWN0b3ItPmRvY3VtZW50KCksIHN0cjEsIHN0cjIsIHN0cjMsIGVjKTsKKyAgICBpZiAoZWMp
IHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIG9i
amVjdC5nZXQoKSkpKTsKK30KKworQ29uc3RydWN0VHlwZSBKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQoreworICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y29uc3RydWN0SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcjsKKyAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZUhvc3Q7Cit9CisKIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogI2lmIEVOQUJMRShK
SVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2VuZXJhdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCBmZTJmZDUwODU0YTNmOGI0YzI0MTIwYzcw
NmY2YmViOGU2YTBiM2M0Li5hM2Y3YjcxNGI2NTMyNTllZWU3NzA4M2EyMDZjYWQ4NTEzZjc4MThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTEyOCw2ICsxMjgsMzEgQEAg
cHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFu
Y2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiB9OwogCitjbGFzcyBK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1
Y3RvcldpdGhEb2N1bWVudCB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvcldp
dGhEb2N1bWVudCBCYXNlOworCisgICAgc3RhdGljIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1l
ZENvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgeworICAg
ICAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3RvciogY29uc3RydWN0b3Ig
PSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0
cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3Ry
dWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOworICAgICAgICBjb25zdHJ1Y3Rvci0+Zmlu
aXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVj
dG9yOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKwor
cHJpdmF0ZToKKyAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3RvcihKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKik7CisgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7CisgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Cit9OworCiAv
LyBBdHRyaWJ1dGVzCiAKIEpTQzo6SlNWYWx1ZSBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYpOwo=
</data>
<flag name="review"
          id="116243"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="116359"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117135</attachid>
            <date>2011-11-30 00:23:04 -0800</date>
            <delta_ts>2011-11-30 06:56:06 -0800</delta_ts>
            <desc>rebased patch for commit</desc>
            <filename>bug-73307-20111130172303.patch</filename>
            <type>text/plain</type>
            <size>21080</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNjNDBmYzQ3MWU2ZTc4
ZDNiMDA4MjNkN2RjNzgzMWYyZjBlNWY2Yi4uODZhOTE1OWI0NDc2MzcwZDg3MGYxZDE0M2M2MWEw
N2QxZDA4YThhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDExLTExLTI5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbXBsZW1lbnQgdGhl
IFtOYW1lZENvbnN0cnVjdG9yXSBJREwgaW4gQ29kZUdlbmVyYXRvckpTLnBtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRo
ZSBbTmFtZWRDb25zdHJ1Y3Rvcl0gSURMIGZvciBKU0MuCisgICAgICAgIFRoZSBzcGVjOiBodHRw
Oi8vd3d3LnczLm9yZy9UUi9XZWJJREwvI05hbWVkQ29uc3RydWN0b3IKKworICAgICAgICBUZXN0
czogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaWRsCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KEdlbmVyYXRlSGVhZGVyKTogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBjb25kaXRpb25zICckZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifScuCisgICAgICAg
IChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKTogQ2FsbHMgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmlu
aXRpb24oKSB0byBnZW5lcmF0ZSBhIE5hbWVkQ29uc3RydWN0b3IuCisgICAgICAgIChHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOiBHZW5lcmF0ZXMgYSBoZWFkZXIgZm9yIGEgTmFtZWRD
b25zdHJ1Y3Rvci4KKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uKTogR2Vu
ZXJhdGVzIGEgTmFtZWRDb25zdHJ1Y3RvciBpbXBsZW1lbnRhdGlvbiBhbmQgZ2V0Q29uc3RydWN0
RGF0YSgpIGZvciB0aGUgTmFtZWRDb25zdHJ1Y3Rvci4KKyAgICAgICAgKElzQ29uc3RydWN0YWJs
ZSk6IEFkZGVkIGEgTmFtZWRDb25zdHJ1Y3RvciBjb25kaXRpb24uCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6IFVwZGF0ZWQg
YSBydW4tYmluZGluZ3MtdGVzdHMgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1l
ZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JO
YW1lZENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFt
ZWRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaDogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUpOgorCisyMDExLTExLTI5ICBLZW50YXJvIEhhcmEgIDxoYXJha2Vu
QGNocm9taXVtLm9yZz4KKwogICAgICAgICBTdG9yYWdlRXZlbnQua2V5IHNob3VsZCBub3QgYmUg
bnVsbGFibGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMTI1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KaW5kZXggOGEzN2NlMTkzMTFkMTNhN2QyNzcyNmE0YTY1ZWQwOGM2MTk1M2Iz
ZS4uMmFmNmZjNGYxZTQwNjI1MTFmM2MyZTRhNGExY2I4MjAwODZiMWQ0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTEw
OTksNyArMTA5OSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIn07XG5cbiIpOwogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkpTQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJPbWl0Q29uc3RydWN0b3IifSkgeworICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVz
eyJKU0RPTUJpbmRpbmcuaCJ9ID0gMTsKICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xh
cmF0aW9uKFxAaGVhZGVyQ29udGVudCwgJGNsYXNzTmFtZSwgJGRhdGFOb2RlLCAkaW50ZXJmYWNl
TmFtZSk7CiAgICAgfQpAQCAtMTQzNiw2ICsxNDM2LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KIAogICAgICAgICBteSAkcHJvdG9DbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9UHJvdG90
eXBlIjsKICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oXEBpbXBsQ29udGVu
dCwgJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJmYWNlTmFtZSwgJHZpc2libGVD
bGFzc05hbWUsICRkYXRhTm9kZSk7CisgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgICAgIEdlbmVyYXRlQ29u
c3RydWN0b3JEZWZpbml0aW9uKFxAaW1wbENvbnRlbnQsICRjbGFzc05hbWUsICRwcm90b0NsYXNz
TmFtZSwgJGludGVyZmFjZU5hbWUsICR2aXNpYmxlQ2xhc3NOYW1lLCAkZGF0YU5vZGUsICJHZW5l
cmF0aW5nTmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICB9CiAgICAgfQogCiAgICAgIyAtIEFk
ZCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyB0byBhIGhhc2h0YWJsZSBkZWZpbml0aW9uCkBAIC0z
MzM1LDcgKzMzMzgsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAicHJvdGVjdGVkOlxuIik7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBE
T01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7XG4iKTsKIAotICAgIGlmIChJc0Nv
bnN0cnVjdGFibGUoJGRhdGFOb2RlKSkgeworICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGRhdGFO
b2RlKSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3Rv
ciJ9KSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShKU0M6OkV4ZWNT
dGF0ZSopO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlND
OjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNvbnN0
cnVjdERhdGEmKTtcbiIpOwogICAgIH0KQEAgLTMzNDQsNiArMzM0NywzNiBAQCBzdWIgR2VuZXJh
dGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiAgICAgaWYgKElzQ29uc3RydWN0b3JUZW1wbGF0ZSgk
ZGF0YU5vZGUsICJFdmVudCIpKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wg
ZmlsbCR7aW50ZXJmYWNlTmFtZX1Jbml0KCR7aW50ZXJmYWNlTmFtZX1Jbml0JiwgSlNEaWN0aW9u
YXJ5Jik7XG5cbiIpOwogICAgIH0KKworICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCA8PEVORCk7CitjbGFzcyBKUyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVjdG9yIDogcHVi
bGljIERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIERP
TUNvbnN0cnVjdG9yV2l0aERvY3VtZW50IEJhc2U7CisKKyAgICBzdGF0aWMgSlMke2ludGVyZmFj
ZU5hbWV9TmFtZWRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1Y3RvciogY29uc3Ry
dWN0b3IgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29u
c3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBKUyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVj
dG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgY29uc3RydWN0b3ItPmZpbmlz
aENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rv
cjsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CisKK3By
aXZhdGU6CisgICAgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1Y3RvcihKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKUyR7aW50ZXJmYWNlTmFtZX0oSlNDOjpFeGVjU3Rh
dGUqKTsKKyAgICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlND
OjpKU0NlbGwqLCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKK307CisKK0VORAorICAgIH0K
IH0KIAogc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCkBAIC0zMzU1LDQ4ICszMzg4
LDY0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgIG15ICRpbnRlcmZh
Y2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJHZpc2libGVDbGFzc05hbWUgPSBzaGlmdDsKICAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3Ig
PSBzaGlmdDsKIAotICAgIG15ICRjb25zdHJ1Y3RvckNsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1D
b25zdHJ1Y3RvciI7CisgICAgbXkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lID0gJGdlbmVyYXRpbmdO
YW1lZENvbnN0cnVjdG9yID8gIiR7Y2xhc3NOYW1lfU5hbWVkQ29uc3RydWN0b3IiIDogIiR7Y2xh
c3NOYW1lfUNvbnN0cnVjdG9yIjsKICAgICBteSAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJz
ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JQYXJhbWV0ZXJz
In07CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0
b3JcIiwgJkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sICYke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfVRhYmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCRjb25zdHJ1Y3RvckNsYXNzTmFtZSkg
fTtcblxuIik7Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdClcbiIp
OwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIn1cblxuIik7CisgICAgaWYgKCRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvcikgeworICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3JcIiwg
JkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
JGNvbnN0cnVjdG9yQ2xhc3NOYW1lKSB9O1xuXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OiR7Y29uc3RydWN0b3JDbGFzc05hbWV9KFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7
CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERv
Y3VtZW50KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KVxuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIntcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImNvbnN0IENsYXNzSW5m
byAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUNsYXNzTmFt
ZX1Db25zdHJ1Y3RvclwiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgJiR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9VGFibGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoJGNvbnN0cnVjdG9y
Q2xhc3NOYW1lKSB9O1xuXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX06OiR7Y29uc3RydWN0b3JDbGFzc05hbWV9KFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgIH0KIAogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgInZvaWQgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIp
OwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpO1xuIik7Ci0g
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7XG4i
KTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIGdsb2JhbE9iamVjdC0+cHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4i
KTsKKyAgICB9IGVsc2lmICgkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERp
cmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUs
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTtc
biIpOwogICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpO1xuIik7CisgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpO1xuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2Vs
ZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CiAgICAg
fQogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigke251bWJlck9mY29u
c3RydWN0UGFyYW1ldGVyc30pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4i
KSBpZiAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIn1cblxuIik7CiAKLSAgICBteSAkaGFzU3RhdGljRnVuY3Rpb25zID0gMDsKLSAgICBmb3Jl
YWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgaWYg
KCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKLSAgICAgICAgICAgICRoYXNTdGF0aWNGdW5jdGlvbnMg
PSAxOwotICAgICAgICAgICAgbGFzdDsKKyAgICBpZiAoISRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1
Y3RvcikgeworICAgICAgICBteSAkaGFzU3RhdGljRnVuY3Rpb25zID0gMDsKKyAgICAgICAgZm9y
ZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgICAg
ICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgeworICAgICAgICAgICAgICAgICRoYXNTdGF0aWNG
dW5jdGlvbnMgPSAxOworICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICB9CiAKLSAgICBteSAka2luZCA9ICRoYXNTdGF0aWNGdW5jdGlvbnMgPyAiUHJv
cGVydHkiIDogIlZhbHVlIjsKKyAgICAgICAgbXkgJGtpbmQgPSAkaGFzU3RhdGljRnVuY3Rpb25z
ID8gIlByb3BlcnR5IiA6ICJWYWx1ZSI7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29s
ICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KVxuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnZXRTdGF0aWMke2tpbmR9U2xvdDwke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX1UYWJsZSwgc3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihjZWxs
KSwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljJHtraW5kfVNsb3Q8JHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX0sIEpTRE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9
VGFibGUsIHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oY2VsbCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4i
KTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKVxuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnZXRTdGF0aWMke2tpbmR9RGVzY3JpcHRv
cjwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX1UYWJsZSwgc3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0q
PihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7Ci0gICAgcHVzaChAJG91
dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAie1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1
cm4gZ2V0U3RhdGljJHtraW5kfURlc2NyaXB0b3I8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0sIEpT
RE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHN0YXRpY19j
YXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAg
IH0KIAogICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGRhdGFOb2RlKSkgewogICAgICAgICBpZiAo
SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRkYXRhTm9kZSwgIkV2ZW50IikpIHsKQEAgLTM0NjMsNyAr
MzUxMiw3IEBAIEVORAogfQogCiBFTkQKLSAgICAgICAgfSBlbHNpZiAoISgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkpIHsKKyAgICAgICAgfSBl
bHNpZiAoISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUNvbnN0cnVj
dG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0
b3IifSkgJiYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVj
dG9yIn0gfHwgJGdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSkgewogICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2NvbnN0cnVj
dG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0JHtjbGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYylcbiIp
OwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAKQEAgLTM0OTMsNiAr
MzU0Miw5IEBAIEVORAogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBp
ZiAoIWNvbnRleHQpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhl
YywgXCIke2ludGVyZmFjZU5hbWV9IGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgZG9jdW1lbnQgaXMg
dW5hdmFpbGFibGVcIikpO1xuIik7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJGdl
bmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSB7CisgICAgICAgICAgICAgICAgcHVzaChAY29uc3Ry
dWN0b3JBcmdMaXN0LCAianNDb25zdHJ1Y3Rvci0+ZG9jdW1lbnQoKSIpOworICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBteSAkaW5kZXggPSAwOwogICAgICAgICAgICAgZm9yZWFjaCBteSAk
cGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKQEAgLTM1MDUsNyArMzU1Nywx
MiBAQCBFTkQKICAgICAgICAgICAgICAgICBwdXNoKEBjb25zdHJ1Y3RvckFyZ0xpc3QsICJlYyIp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yQXJnID0gam9pbigi
LCAiLCBAY29uc3RydWN0b3JBcmdMaXN0KTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBSZWZQdHI8JHtpbnRlcmZhY2VOYW1lfT4gb2JqZWN0ID0gJHtpbnRlcmZhY2VOYW1l
fTo6Y3JlYXRlKCR7Y29uc3RydWN0b3JBcmd9KTtcbiIpOworICAgICAgICAgICAgaWYgKCRnZW5l
cmF0aW5nTmFtZWRDb25zdHJ1Y3RvcikgeworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBSZWZQdHI8JHtpbnRlcmZhY2VOYW1lfT4gb2JqZWN0ID0gJHtpbnRlcmZhY2VO
YW1lfTo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcigke2NvbnN0cnVjdG9yQXJnfSk7XG4iKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIFJlZlB0cjwke2ludGVyZmFjZU5hbWV9PiBvYmplY3QgPSAke2ludGVyZmFjZU5hbWV9Ojpj
cmVhdGUoJHtjb25zdHJ1Y3RvckFyZ30pO1xuIik7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclJhaXNl
c0V4Y2VwdGlvbiJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGlmIChlYykge1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIik7CkBAIC0zNTE3LDExICszNTc0LDEz
IEBAIEVORAogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKICAgICAg
ICAgfQogCi0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkNvbnN0cnVjdFR5cGUgJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX06OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYgY29uc3RydWN0RGF0YSlcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4i
KTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0JHtjbGFzc05hbWV9O1xuIik7Ci0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7XG4iKTsKLSAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0gfHwgJGdlbmVyYXRpbmdOYW1l
ZENvbnN0cnVjdG9yKSB7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJDb25zdHJ1
Y3RUeXBlICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0JHtjbGFzc05hbWV9O1xu
Iik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIENvbnN0cnVj
dFR5cGVIb3N0O1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIp
OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zNTI5LDcgKzM1ODgsNyBAQCBzdWIgSXNDb25z
dHJ1Y3RhYmxlCiB7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NvbnN0cnVjdG9yVGVtcGxhdGUifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn07CisgICAgcmV0
dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Db25zdHJ1Y3RvciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ29uc3RydWN0b3JUZW1wbGF0ZSJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yVGVtcGxhdGUifTsKIH0K
IAogc3ViIElzQ29uc3RydWN0b3JUZW1wbGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwCmluZGV4IGI3M2Y4ODA4NmIzNmI3MjU0NTUxNDYzOTg4Y2RhMTNhMjYwNTg0ZWYuLmYy
MTVmYWY0ZjZlN2FlN2Q5NjE4NTg0M2IwOTQwNDk1YTU2YTUxNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxLDcgKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlRlc3RO
YW1lZENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTkzLDYgKzk2LDQ5IEBA
IGJvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNPYmplY3QqIG9iamVjCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3Jp
cHRvcjxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhl
YywgJkpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IpOwogfQogCitjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ck5hbWVkQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3RvcikgfTsKKworSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OkpTVGVzdE5hbWVkQ29uc3RydWN0
b3JOYW1lZENvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoc3RydWN0
dXJlLCBnbG9iYWxPYmplY3QpCit7Cit9CisKK3ZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5h
bWVkQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CisgICAgcHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNU
ZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBO
b25lKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3Ry
dWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
TmFtZWRDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVU
eXBlRXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOworICAgIGNvbnN0IFN0cmluZyYgc3RyMSh1c3RyaW5nVG9TdHJpbmcoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKS5pc0VtcHR5KCkg
PyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNV
bmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIGNv
bnN0IFN0cmluZyYgc3RyMih1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvU3RyaW5n
KGV4ZWMpKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIGNvbnN0IFN0cmluZyYgc3RyMyh1
c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMiwgTWlzc2luZ0lz
RW1wdHkpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDIsIE1pc3NpbmdJc0VtcHR5KS50b1N0cmluZyhleGVjKSkpOworICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICBSZWZQdHI8VGVzdE5hbWVkQ29uc3RydWN0b3I+IG9iamVjdCA9IFRlc3ROYW1l
ZENvbnN0cnVjdG9yOjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKGpzQ29uc3RydWN0b3ItPmRvY3Vt
ZW50KCksIHN0cjEsIHN0cjIsIHN0cjMsIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKCkpOworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRv
SlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIG9iamVjdC5nZXQoKSkpKTsK
K30KKworQ29uc3RydWN0VHlwZSBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRh
KQoreworICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNUZXN0
TmFtZWRDb25zdHJ1Y3RvcjsKKyAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7Cit9CisKIC8q
IEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogI2lmIEVOQUJMRShKSVQpCiAjZGVmaW5lIFRI
VU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2VuZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuaAppbmRleCBmZTJmZDUwODU0YTNmOGI0YzI0MTIwYzcwNmY2YmViOGU2YTBiM2M0
Li5hM2Y3YjcxNGI2NTMyNTllZWU3NzA4M2EyMDZjYWQ4NTEzZjc4MThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTEyOCw2ICsxMjgsMzEgQEAgcHJvdGVjdGVkOgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBET01Db25zdHJ1
Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiB9OwogCitjbGFzcyBKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yTmFtZWRDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVu
dCB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCBCYXNl
OworCisgICAgc3RhdGljIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yKiBj
cmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgeworICAgICAgICBKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKEpTQzo6YWxs
b2NhdGVDZWxsPEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yPigqZXhlYy0+
aGVhcCgpKSkgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3Ioc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QpOworICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24oZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOworICAgIH0KKwor
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CisgICAgfQorCisg
ICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKworcHJpdmF0ZToKKyAgICBK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKik7
CisgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6SlND
ZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Cit9OworCiAvLyBBdHRyaWJ1dGVzCiAK
IEpTQzo6SlNWYWx1ZSBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>