<?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>99706</bug_id>
          
          <creation_ts>2012-10-18 04:03:12 -0700</creation_ts>
          <short_desc>MIPS LLInt implementation.</short_desc>
          <delta_ts>2013-05-22 08:30:54 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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>108664</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kilvady">kilvadyb</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>fu</cc>
    
    <cc>gergely</cc>
    
    <cc>mark.lam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>palfia</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745148</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 04:03:12 -0700</bug_when>
    <thetext>LLInt implementation for MIPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745152</commentid>
    <comment_count>1</comment_count>
      <attachid>169391</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 04:27:00 -0700</bug_when>
    <thetext>Created attachment 169391
LLInt implementation for MIPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745153</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 04:29:00 -0700</bug_when>
    <thetext>Attachment 169391 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1569:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 13 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>745154</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 04:38:07 -0700</bug_when>
    <thetext>Tools/Scripts/check-webkit-style reports: Source/JavaScriptCore/dfg/DFGOperations.cpp:1569:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
That&apos;s an asm(…) part of the file and I haven&apos;t found any asm(..) related style-guide and just followed other architectures&apos; coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745157</commentid>
    <comment_count>4</comment_count>
      <attachid>169391</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-18 04:51:04 -0700</bug_when>
    <thetext>Comment on attachment 169391
LLInt implementation for MIPS.

Attachment 169391 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14412526</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745162</commentid>
    <comment_count>5</comment_count>
      <attachid>169391</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-18 04:55:02 -0700</bug_when>
    <thetext>Comment on attachment 169391
LLInt implementation for MIPS.

Attachment 169391 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14455041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745166</commentid>
    <comment_count>6</comment_count>
      <attachid>169392</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 05:03:43 -0700</bug_when>
    <thetext>Created attachment 169392
LLInt implementation for MIPS.

#if macro fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745193</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 06:06:02 -0700</bug_when>
    <thetext>Attachment 169392 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1569:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 13 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>745338</commentid>
    <comment_count>8</comment_count>
      <attachid>169392</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-10-18 09:57:24 -0700</bug_when>
    <thetext>Comment on attachment 169392
LLInt implementation for MIPS.

View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review

r=me, but it would be nice if you could respond to my comments :D

&gt; Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:126
&gt; +    &quot;.set noreorder\n&quot; \

Quick question, what does this do?  Disable instruction reordering, or disable function reordering - LLInt should be safe against function reordering so if it&apos;s the latter this is probably unnecessary.  If it&apos;s not then just ignore me :D

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:163
&gt; +        move sourceRegister, lr

I feel that we should just have 
if C_LOOP or ARMv7 or MIPS
    move sourceRegister, lr
elsif X86 or X86_64
     ...
else
    error
end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745351</commentid>
    <comment_count>9</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 10:12:20 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 169392 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; 
&gt; r=me, but it would be nice if you could respond to my comments :D
&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:126
&gt; &gt; +    &quot;.set noreorder\n&quot; \
&gt; 
&gt; Quick question, what does this do?  Disable instruction reordering, or disable function reordering - LLInt should be safe against function reordering so if it&apos;s the latter this is probably unnecessary.  If it&apos;s not then just ignore me :D

This macro turns off gas&apos; optimization of instruction reordering and must be used around .cpload macro which is necessary for PIC compatibility.

&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:163
&gt; &gt; +        move sourceRegister, lr
&gt; 
&gt; I feel that we should just have 
&gt; if C_LOOP or ARMv7 or MIPS
&gt;     move sourceRegister, lr
&gt; elsif X86 or X86_64
&gt;      ...
&gt; else
&gt;     error
&gt; end
Could be. Should I make a new patch with this modification?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745379</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-10-18 10:53:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 169392 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; &gt; 
&gt; &gt; r=me, but it would be nice if you could respond to my comments :D
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:126
&gt; &gt; &gt; +    &quot;.set noreorder\n&quot; \
&gt; &gt; 
&gt; &gt; Quick question, what does this do?  Disable instruction reordering, or disable function reordering - LLInt should be safe against function reordering so if it&apos;s the latter this is probably unnecessary.  If it&apos;s not then just ignore me :D
&gt; 
&gt; This macro turns off gas&apos; optimization of instruction reordering and must be used around .cpload macro which is necessary for PIC compatibility.

Righto

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:163
&gt; &gt; &gt; +        move sourceRegister, lr
&gt; &gt; 
&gt; &gt; I feel that we should just have 
&gt; &gt; if C_LOOP or ARMv7 or MIPS
&gt; &gt;     move sourceRegister, lr
&gt; &gt; elsif X86 or X86_64
&gt; &gt;      ...
&gt; &gt; else
&gt; &gt;     error
&gt; &gt; end
&gt; Could be. Should I make a new patch with this modification?

Nah, but maybe make the change as a followup?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745380</commentid>
    <comment_count>11</comment_count>
      <attachid>169392</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-18 10:53:44 -0700</bug_when>
    <thetext>Comment on attachment 169392
LLInt implementation for MIPS.

View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review

&gt; Source/JavaScriptCore/offlineasm/mips.rb:190
&gt; +def mipsLowerBranchOps(list)

Did you copy and paste all of this code?

You should make an effort to reuse code rather than copy and pasting it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745386</commentid>
    <comment_count>12</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 10:58:24 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; (From update of attachment 169392 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; r=me, but it would be nice if you could respond to my comments :D
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:126
&gt; &gt; &gt; &gt; +    &quot;.set noreorder\n&quot; \
&gt; &gt; &gt; 
&gt; &gt; &gt; Quick question, what does this do?  Disable instruction reordering, or disable function reordering - LLInt should be safe against function reordering so if it&apos;s the latter this is probably unnecessary.  If it&apos;s not then just ignore me :D
&gt; &gt; 
&gt; &gt; This macro turns off gas&apos; optimization of instruction reordering and must be used around .cpload macro which is necessary for PIC compatibility.
&gt; 
&gt; Righto
&gt; 
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:163
&gt; &gt; &gt; &gt; +        move sourceRegister, lr
&gt; &gt; &gt; 
&gt; &gt; &gt; I feel that we should just have 
&gt; &gt; &gt; if C_LOOP or ARMv7 or MIPS
&gt; &gt; &gt;     move sourceRegister, lr
&gt; &gt; &gt; elsif X86 or X86_64
&gt; &gt; &gt;      ...
&gt; &gt; &gt; else
&gt; &gt; &gt;     error
&gt; &gt; &gt; end
&gt; &gt; Could be. Should I make a new patch with this modification?
&gt; 
&gt; Nah, but maybe make the change as a followup?
OK for me if you accept the change :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745396</commentid>
    <comment_count>13</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-18 11:09:07 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 169392 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/offlineasm/mips.rb:190
&gt; &gt; +def mipsLowerBranchOps(list)
&gt; 
&gt; Did you copy and paste all of this code?
&gt; 
&gt; You should make an effort to reuse code rather than copy and pasting it.

What you mean? I started from a copy of the armv7 implementation and I can&apos;t see how could there be more code reusing. Could you give me more details?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745414</commentid>
    <comment_count>14</comment_count>
      <attachid>169392</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-18 11:23:23 -0700</bug_when>
    <thetext>Comment on attachment 169392
LLInt implementation for MIPS.

View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review

You should move lowering phases that are identical into a separate file.  If they are almost identical except for some constant, then the phase should take a constant as an argument.  If two phases just have some lowering in common but others are different (like lowering of branch ops for bmul) then you can split the phase in two - one phase for just bmul, which is common, and another phase for the rest, which is separate.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:278
&gt; +            when &quot;bmulio&quot;
&gt; +                tmp1 = Tmp.new(node.codeOrigin, :gpr)
&gt; +                tmp2 = Tmp.new(node.codeOrigin, :gpr)
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;smulli&quot;, [node.operands[0], node.operands[1], node.operands[1], tmp1])
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;rshifti&quot;, [node.operands[-2], Immediate.new(node.codeOrigin, 31), tmp2])
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;bineq&quot;, [tmp1, tmp2, node.operands[-1]])
&gt; +            when /^bmuli/
&gt; +                condition = $~.post_match
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;muli&quot;, node.operands[0..-2])
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;bti&quot; + condition, [node.operands[-2], node.operands[-1]])

This is identical to the cases in armV7LowerBranchOps.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:357
&gt; +def mipsSanitizeShift(operand, list)
&gt; +    return operand if operand.immediate?
&gt; +
&gt; +    tmp = Tmp.new(operand.codeOrigin, :gpr)
&gt; +    list &lt;&lt; Instruction.new(operand.codeOrigin, &quot;andi&quot;, [operand, Immediate.new(operand.codeOrigin, 31), tmp])
&gt; +    tmp
&gt; +end
&gt; +
&gt; +def mipsLowerShiftOps(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        if node.is_a? Instruction
&gt; +            case node.opcode
&gt; +            when &quot;lshifti&quot;, &quot;rshifti&quot;, &quot;urshifti&quot;, &quot;lshiftp&quot;, &quot;rshiftp&quot;, &quot;urshiftp&quot;
&gt; +                if node.operands.size == 2
&gt; +                    newList &lt;&lt; Instruction.new(node.codeOrigin, node.opcode, [mipsSanitizeShift(node.operands[0], newList), node.operands[1]])
&gt; +                else
&gt; +                    newList &lt;&lt; Instruction.new(node.codeOrigin, node.opcode, [node.operands[0], mipsSanitizeShift(node.operands[1], newList), node.operands[2]])
&gt; +                    raise &quot;Wrong number of operands for shift at #{node.codeOriginString}&quot; unless node.operands.size == 3
&gt; +                end
&gt; +            else
&gt; +                newList &lt;&lt; node
&gt; +            end
&gt; +        else
&gt; +            newList &lt;&lt; node
&gt; +        end
&gt; +    }
&gt; +    newList
&gt; +end

This is identical to armv7SanitizeShift

&gt; Source/JavaScriptCore/offlineasm/mips.rb:392
&gt; +class Node
&gt; +    def mipsLowerMalformedAddressesRecurse(list)
&gt; +        mapChildren {
&gt; +            | node |
&gt; +            node.mipsLowerMalformedAddressesRecurse(list)
&gt; +        }
&gt; +    end
&gt; +end
&gt; +
&gt; +class Address
&gt; +    def mipsLowerMalformedAddressesRecurse(list)
&gt; +        if offset.value &lt; -0xffff or offset.value &gt; 0xffff
&gt; +            tmp = Tmp.new(codeOrigin, :gpr)
&gt; +            list &lt;&lt; Instruction.new(codeOrigin, &quot;move&quot;, [offset, tmp])
&gt; +            list &lt;&lt; Instruction.new(codeOrigin, &quot;addp&quot;, [base, tmp])
&gt; +            Address.new(codeOrigin, tmp, Immediate.new(codeOrigin, 0))
&gt; +        else
&gt; +            self
&gt; +        end
&gt; +    end
&gt; +end
&gt; +

This is identical to armV7LowerMalformedAddressesRecurse except for the acceptable range.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:398
&gt; +        if scaleShift == 0
&gt; +            tmp0 = Tmp.new(codeOrigin, :gpr)
&gt; +            list &lt;&lt; Instruction.new(codeOrigin, &quot;addp&quot;, [base, index, tmp0])
&gt; +            Address.new(codeOrigin, tmp0, Immediate.new(codeOrigin, offset.value));

scaleShift will never be 0.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:423
&gt; +class AbsoluteAddress
&gt; +    def mipsLowerMalformedAddressesRecurse(list)
&gt; +        tmp = Tmp.new(codeOrigin, :gpr)
&gt; +        list &lt;&lt; Instruction.new(codeOrigin, &quot;move&quot;, [address, tmp])
&gt; +        Address.new(codeOrigin, tmp, Immediate.new(codeOrigin, 0))
&gt; +    end
&gt; +end
&gt; +
&gt; +def mipsLowerMalformedAddresses(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        newList &lt;&lt; node.mipsLowerMalformedAddressesRecurse(newList)
&gt; +    }
&gt; +    newList
&gt; +end

This is identical to armV7LowerMalformedAddresses

&gt; Source/JavaScriptCore/offlineasm/mips.rb:468
&gt; +class Node
&gt; +    def mipsDoubleAddress(list)
&gt; +        self
&gt; +    end
&gt; +end
&gt; +
&gt; +class BaseIndex
&gt; +    def mipsDoubleAddress(list)
&gt; +        tmp = Tmp.new(codeOrigin, :gpr)
&gt; +        list &lt;&lt; Instruction.new(codeOrigin, &quot;leap&quot;, [self, tmp])
&gt; +        Address.new(codeOrigin, tmp, Immediate.new(codeOrigin, 0))
&gt; +    end
&gt; +end
&gt; +
&gt; +def mipsLowerMalformedAddressesDouble(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        if node.is_a? Instruction
&gt; +            case node.opcode
&gt; +            when &quot;loadd&quot;
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;loadd&quot;, [node.operands[0].mipsDoubleAddress(newList), node.operands[1]])
&gt; +            when &quot;stored&quot;
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;stored&quot;, [node.operands[0], node.operands[1].mipsDoubleAddress(newList)])
&gt; +            else
&gt; +                newList &lt;&lt; node
&gt; +            end
&gt; +        else
&gt; +            newList &lt;&lt; node
&gt; +        end
&gt; +    }
&gt; +    newList
&gt; +end

You don&apos;t need this, if on MIPS you&apos;re always lowering BaseIndex anyway.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:571
&gt; +class Node
&gt; +    def mipsLowerMalformedImmediatesRecurse(list)
&gt; +        mapChildren {
&gt; +            | node |
&gt; +            node.mipsLowerMalformedImmediatesRecurse(list)
&gt; +        }
&gt; +    end
&gt; +end
&gt; +
&gt; +class Address
&gt; +    def mipsLowerMalformedImmediatesRecurse(list)
&gt; +        self
&gt; +    end
&gt; +end
&gt; +
&gt; +class BaseIndex
&gt; +    def mipsLowerMalformedImmediatesRecurse(list)
&gt; +        self
&gt; +    end
&gt; +end
&gt; +
&gt; +class AbsoluteAddress
&gt; +    def mipsLowerMalformedImmediatesRecurse(list)
&gt; +        self
&gt; +    end
&gt; +end
&gt; +
&gt; +class Immediate
&gt; +    def mipsLowerMalformedImmediatesRecurse(list)
&gt; +        if value &lt; -0xffff or value &gt; 0xffff
&gt; +            tmp = Tmp.new(codeOrigin, :gpr)
&gt; +            list &lt;&lt; Instruction.new(codeOrigin, &quot;move&quot;, [self, tmp])
&gt; +            tmp

This whole swath of code is identical to armV7LowerMalformedImmediates

&gt; Source/JavaScriptCore/offlineasm/mips.rb:654
&gt; +def mipsAsRegister(preList, postList, operand, suffix, needStore)
&gt; +    return operand unless operand.address?
&gt; +
&gt; +    tmp = Tmp.new(operand.codeOrigin, if suffix == &quot;d&quot; then :fpr else :gpr end)
&gt; +    preList &lt;&lt; Instruction.new(operand.codeOrigin, &quot;load&quot; + suffix, [operand, tmp])
&gt; +    if needStore
&gt; +        postList &lt;&lt; Instruction.new(operand.codeOrigin, &quot;store&quot; + suffix, [tmp, operand])
&gt; +    end
&gt; +    tmp
&gt; +end
&gt; +
&gt; +def mipsAsRegisters(preList, postList, operands, suffix)
&gt; +    newOperands = []
&gt; +    operands.each_with_index {
&gt; +        | operand, index |
&gt; +        newOperands &lt;&lt; mipsAsRegister(preList, postList, operand, suffix, index == operands.size - 1)
&gt; +    }
&gt; +    newOperands
&gt; +end
&gt; +
&gt; +def mipsLowerMisplacedAddresses(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        if node.is_a? Instruction
&gt; +            postInstructions = []
&gt; +            case node.opcode
&gt; +            when &quot;addi&quot;, &quot;addp&quot;, &quot;addis&quot;, &quot;andi&quot;, &quot;andp&quot;, &quot;lshifti&quot;, &quot;lshiftp&quot;, &quot;muli&quot;, &quot;mulp&quot;, &quot;negi&quot;,
&gt; +                &quot;negp&quot;, &quot;noti&quot;, &quot;ori&quot;, &quot;oris&quot;, &quot;orp&quot;, &quot;rshifti&quot;, &quot;urshifti&quot;, &quot;rshiftp&quot;, &quot;urshiftp&quot;, &quot;subi&quot;,
&gt; +                &quot;subp&quot;, &quot;subis&quot;, &quot;xori&quot;, &quot;xorp&quot;, /^bi/, /^bp/, /^bti/, /^btp/, /^ci/, /^cp/, /^ti/
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin,
&gt; +                                           node.opcode,
&gt; +                                           mipsAsRegisters(newList, postInstructions, node.operands, &quot;i&quot;))
&gt; +            when &quot;bbeq&quot;, &quot;bbneq&quot;, &quot;bba&quot;, &quot;bbaeq&quot;, &quot;bbb&quot;, &quot;bbbeq&quot;, &quot;btbo&quot;, &quot;btbz&quot;, &quot;btbnz&quot;, &quot;tbz&quot;, &quot;tbnz&quot;,
&gt; +                &quot;tbo&quot;, &quot;cbeq&quot;, &quot;cbneq&quot;, &quot;cba&quot;, &quot;cbaeq&quot;, &quot;cbb&quot;, &quot;cbbeq&quot;
&gt; +                newList &lt;&lt; Instruction.new(node.codeOrigin,
&gt; +                                           node.opcode,
&gt; +                                           mipsAsRegisters(newList, postInstructions, node.operands, &quot;b&quot;))

Again, this looks identical to armV7LowerMisplacedAddresses

&gt; Source/JavaScriptCore/offlineasm/mips.rb:768
&gt; +def mipsLowerRegisterReuse(list)
&gt; +    newList = []
&gt; +    list.each {
&gt; +        | node |
&gt; +        if node.is_a? Instruction
&gt; +            case node.opcode
&gt; +            when &quot;cieq&quot;, &quot;cineq&quot;, &quot;cia&quot;, &quot;ciaeq&quot;, &quot;cib&quot;, &quot;cibeq&quot;, &quot;cigt&quot;, &quot;cigteq&quot;, &quot;cilt&quot;, &quot;cilteq&quot;,
&gt; +                &quot;cpeq&quot;, &quot;cpneq&quot;, &quot;cpa&quot;, &quot;cpaeq&quot;, &quot;cpb&quot;, &quot;cpbeq&quot;, &quot;cpgt&quot;, &quot;cpgteq&quot;, &quot;cplt&quot;, &quot;cplteq&quot;,
&gt; +                &quot;tio&quot;, &quot;tis&quot;, &quot;tiz&quot;, &quot;tinz&quot;, &quot;tbo&quot;, &quot;tbs&quot;, &quot;tbz&quot;, &quot;tbnz&quot;, &quot;tpo&quot;, &quot;tps&quot;, &quot;tpz&quot;, &quot;tpnz&quot;,
&gt; +                &quot;cbeq&quot;, &quot;cbneq&quot;, &quot;cba&quot;, &quot;cbaeq&quot;, &quot;cbb&quot;, &quot;cbbeq&quot;, &quot;cbgt&quot;, &quot;cbgteq&quot;, &quot;cblt&quot;, &quot;cblteq&quot;
&gt; +                if node.operands.size == 2
&gt; +                    if node.operands[0] == node.operands[1]
&gt; +                        tmp = Tmp.new(node.codeOrigin, :gpr)
&gt; +                        newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;move&quot;, [node.operands[0], tmp])
&gt; +                        newList &lt;&lt; Instruction.new(node.codeOrigin, node.opcode, [tmp, node.operands[1]])
&gt; +                    else
&gt; +                        newList &lt;&lt; node
&gt; +                    end
&gt; +                else
&gt; +                    raise &quot;Wrong number of arguments at #{node.codeOriginString}&quot; unless node.operands.size == 3
&gt; +                    if node.operands[0] == node.operands[2]
&gt; +                        tmp = Tmp.new(node.codeOrigin, :gpr)
&gt; +                        newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;move&quot;, [node.operands[0], tmp])
&gt; +                        newList &lt;&lt; Instruction.new(node.codeOrigin, node.opcode, [tmp, node.operands[1], node.operands[2]])
&gt; +                    elsif node.operands[1] == node.operands[2]
&gt; +                        tmp = Tmp.new(node.codeOrigin, :gpr)
&gt; +                        newList &lt;&lt; Instruction.new(node.codeOrigin, &quot;move&quot;, [node.operands[1], tmp])
&gt; +                        newList &lt;&lt; Instruction.new(node.codeOrigin, node.opcode, [node.operands[0], tmp, node.operands[2]])
&gt; +                    else
&gt; +                        newList &lt;&lt; node
&gt; +                    end
&gt; +                end
&gt; +            else
&gt; +                newList &lt;&lt; node
&gt; +            end
&gt; +        else
&gt; +            newList &lt;&lt; node
&gt; +        end
&gt; +    }
&gt; +    newList

Again!  Identical to armV7LowerRegisterReuse!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745455</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-18 12:06:43 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 169392 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/offlineasm/mips.rb:190
&gt; &gt; &gt; +def mipsLowerBranchOps(list)
&gt; &gt; 
&gt; &gt; Did you copy and paste all of this code?
&gt; &gt; 
&gt; &gt; You should make an effort to reuse code rather than copy and pasting it.
&gt; 
&gt; What you mean? I started from a copy of the armv7 implementation and I can&apos;t see how could there be more code reusing. Could you give me more details?

I&apos;ve created a bug for this: https://bugs.webkit.org/show_bug.cgi?id=99745

I have a pretty good idea of how I&apos;d like this to work, so that the code is more maintainable in the future.  I&apos;ll try to hack something up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746988</commentid>
    <comment_count>16</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-20 13:09:37 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 169392 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/JavaScriptCore/offlineasm/mips.rb:190
&gt; &gt; &gt; &gt; +def mipsLowerBranchOps(list)
&gt; &gt; &gt; 
&gt; &gt; &gt; Did you copy and paste all of this code?
&gt; &gt; &gt; 
&gt; &gt; &gt; You should make an effort to reuse code rather than copy and pasting it.
&gt; &gt; 
&gt; &gt; What you mean? I started from a copy of the armv7 implementation and I can&apos;t see how could there be more code reusing. Could you give me more details?
&gt; 
&gt; I&apos;ve created a bug for this: https://bugs.webkit.org/show_bug.cgi?id=99745
&gt; 
&gt; I have a pretty good idea of how I&apos;d like this to work, so that the code is more maintainable in the future.  I&apos;ll try to hack something up.

This is landed in http://trac.webkit.org/changeset/131989

Do you guys think you can redo the MIPS backend around the common things in risc.rb?

Feel free to refactor risc.rb further if you need to.  Remember, this code isn&apos;t performance-critical so you can have as many little phases as is convenient.  The only requirements are (a) correctness (obviously) and (b) generating decent code in the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747377</commentid>
    <comment_count>17</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-22 03:17:21 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; &gt; (From update of attachment 169392 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/JavaScriptCore/offlineasm/mips.rb:190
&gt; &gt; &gt; &gt; &gt; +def mipsLowerBranchOps(list)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Did you copy and paste all of this code?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; You should make an effort to reuse code rather than copy and pasting it.
&gt; &gt; &gt; 
&gt; &gt; &gt; What you mean? I started from a copy of the armv7 implementation and I can&apos;t see how could there be more code reusing. Could you give me more details?
&gt; &gt; 
&gt; &gt; I&apos;ve created a bug for this: https://bugs.webkit.org/show_bug.cgi?id=99745
&gt; &gt; 
&gt; &gt; I have a pretty good idea of how I&apos;d like this to work, so that the code is more maintainable in the future.  I&apos;ll try to hack something up.
&gt; 
&gt; This is landed in http://trac.webkit.org/changeset/131989
&gt; 
&gt; Do you guys think you can redo the MIPS backend around the common things in risc.rb?
&gt; 
&gt; Feel free to refactor risc.rb further if you need to.  Remember, this code isn&apos;t performance-critical so you can have as many little phases as is convenient.  The only requirements are (a) correctness (obviously) and (b) generating decent code in the end.

Sure. We can (re)do  it. Will be nice and decent :)  Thank&apos;s for the initial implementation of risc.rb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749863</commentid>
    <comment_count>18</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-24 11:31:31 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 169392 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169392&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/offlineasm/mips.rb:398
&gt; &gt; +        if scaleShift == 0
&gt; &gt; +            tmp0 = Tmp.new(codeOrigin, :gpr)
&gt; &gt; +            list &lt;&lt; Instruction.new(codeOrigin, &quot;addp&quot;, [base, index, tmp0])
&gt; &gt; +            Address.new(codeOrigin, tmp0, Immediate.new(codeOrigin, offset.value));
&gt; 
&gt; scaleShift will never be 0.
There is 0 scaleShift so I would like to keep that checking. For example at LowLevelInterpreter.asm:602:
loadp VectorBufferOffset[scratch, dest, 1], dest
The generated armv7 code:
    &quot;\tmovw r9, #4\n&quot;
    &quot;\tadd r9, r1\n&quot;
    &quot;\tldr r0, [r9, r0, lsl #0]\n&quot;
The mips equivalent is (without scaleShift == 0 check):
    &quot;\tsll $t7, $v0, 0\n&quot;
    &quot;\taddu $t7, $t7, $v1\n&quot;
    &quot;\tlw $v0, 4($t7)\n&quot;
And on mips with scaleShift checking:
    &quot;\taddu $t7, $v1, $v0\n&quot;
    &quot;\tlw $v0, 4($t7)\n&quot;
Both (with or without scaleShift checking) passes Tools/Scripts/run-javascriptcore-tests. I guess 2^0 == 1 so scale == 1; scaleShift == 0;
As ast.rb has:
    def scaleShift
        case scale
        when 1
            0
        when 2
            1
        when 4
            2
        when 8
            3
        else
            raise &quot;Bad scale at #{codeOriginString}&quot;
        end
    end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752733</commentid>
    <comment_count>19</comment_count>
      <attachid>171085</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-27 01:42:20 -0700</bug_when>
    <thetext>Created attachment 171085
LLInt implementation for MIPS using risc.rb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752737</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-27 01:45:09 -0700</bug_when>
    <thetext>Attachment 171085 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1576:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>755309</commentid>
    <comment_count>21</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-10-31 08:02:27 -0700</bug_when>
    <thetext>Would someone be so kind to review the last patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758487</commentid>
    <comment_count>22</comment_count>
      <attachid>172328</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-05 06:32:46 -0800</bug_when>
    <thetext>Created attachment 172328
LLInt implementation for MIPS using risc.rb.

Slightly modified version with Oliver&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758491</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 06:41:12 -0800</bug_when>
    <thetext>Attachment 172328 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1576:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>762026</commentid>
    <comment_count>24</comment_count>
      <attachid>173086</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-08 11:55:01 -0800</bug_when>
    <thetext>Created attachment 173086
LLInt implementation for MIPS using risc.rb.

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762029</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 11:57:44 -0800</bug_when>
    <thetext>Attachment 173086 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1575:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 14 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>762031</commentid>
    <comment_count>26</comment_count>
      <attachid>173086</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 12:01:41 -0800</bug_when>
    <thetext>Comment on attachment 173086
LLInt implementation for MIPS using risc.rb.

Attachment 173086 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14759919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762033</commentid>
    <comment_count>27</comment_count>
      <attachid>173086</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 12:03:49 -0800</bug_when>
    <thetext>Comment on attachment 173086
LLInt implementation for MIPS using risc.rb.

Attachment 173086 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14779007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762037</commentid>
    <comment_count>28</comment_count>
      <attachid>173086</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-08 12:06:40 -0800</bug_when>
    <thetext>Comment on attachment 173086
LLInt implementation for MIPS using risc.rb.

Attachment 173086 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14759920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762048</commentid>
    <comment_count>29</comment_count>
      <attachid>173091</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-08 12:22:18 -0800</bug_when>
    <thetext>Created attachment 173091
LLInt implementation for MIPS using risc.rb.

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762053</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 12:25:01 -0800</bug_when>
    <thetext>Attachment 173091 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1575:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>763320</commentid>
    <comment_count>31</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2012-11-09 14:28:40 -0800</bug_when>
    <thetext>Hi Oliver, Filip,

  Is there status update or any concern about this patch?  Thank a lot!

Regards,
Chao-ying</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766739</commentid>
    <comment_count>32</comment_count>
      <attachid>174127</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-14 04:24:14 -0800</bug_when>
    <thetext>Created attachment 174127
LLInt implementation for MIPS using risc.rb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766741</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 04:26:11 -0800</bug_when>
    <thetext>Attachment 174127 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1624:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>766745</commentid>
    <comment_count>34</comment_count>
      <attachid>174127</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-14 04:32:26 -0800</bug_when>
    <thetext>Comment on attachment 174127
LLInt implementation for MIPS using risc.rb.

The style error comes from handling asm(…) code in cpp files. The patch of the Bug 101367 can fix this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766962</commentid>
    <comment_count>35</comment_count>
      <attachid>174176</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-14 09:13:37 -0800</bug_when>
    <thetext>Created attachment 174176
LLInt implementation for MIPS using risc.rb.

rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766963</commentid>
    <comment_count>36</comment_count>
      <attachid>174176</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-14 09:14:57 -0800</bug_when>
    <thetext>Comment on attachment 174176
LLInt implementation for MIPS using risc.rb.

The style error comes from handling asm(…) code in cpp files. The patch of the Bug 101367 can fix this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766965</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 09:16:00 -0800</bug_when>
    <thetext>Attachment 174176 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1626:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>776900</commentid>
    <comment_count>38</comment_count>
      <attachid>176290</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 09:56:52 -0800</bug_when>
    <thetext>Created attachment 176290
LLInt implementation for MIPS using risc.rb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776903</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 09:59:21 -0800</bug_when>
    <thetext>Attachment 176290 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1676:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>776911</commentid>
    <comment_count>40</comment_count>
      <attachid>176290</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 10:02:29 -0800</bug_when>
    <thetext>Comment on attachment 176290
LLInt implementation for MIPS using risc.rb.

Rebased on r135868.
The style error comes from handling asm(…) code in cpp files. The patch of the Bug 101367 can fix this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792778</commentid>
    <comment_count>41</comment_count>
      <attachid>179758</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-12-17 09:20:24 -0800</bug_when>
    <thetext>Created attachment 179758
LLInt implementation for MIPS reusing risc.rb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792781</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-17 09:23:32 -0800</bug_when>
    <thetext>Attachment 179758 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1694:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>792782</commentid>
    <comment_count>43</comment_count>
      <attachid>179758</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-12-17 09:24:15 -0800</bug_when>
    <thetext>Comment on attachment 179758
LLInt implementation for MIPS reusing risc.rb.

Rebased on r137913</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792784</commentid>
    <comment_count>44</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-12-17 09:29:18 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; Attachment 179758 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:1694:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Total errors found: 1 in 15 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.
The style error comes from handling asm (…) code in cpp files. The patch of the Bug 101367 can fix this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793538</commentid>
    <comment_count>45</comment_count>
      <attachid>179919</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-12-18 04:11:34 -0800</bug_when>
    <thetext>Created attachment 179919
LLInt implementation for MIPS reusing risc.rb.

JITStubs.cpp fix, rebased on r138005.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793539</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 04:13:50 -0800</bug_when>
    <thetext>Attachment 179919 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1694:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>800255</commentid>
    <comment_count>47</comment_count>
      <attachid>181313</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-04 09:18:34 -0800</bug_when>
    <thetext>Created attachment 181313
LLInt implementation for MIPS reusing risc.rb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800261</commentid>
    <comment_count>48</comment_count>
      <attachid>181313</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-04 09:21:44 -0800</bug_when>
    <thetext>Comment on attachment 181313
LLInt implementation for MIPS reusing risc.rb.

Rebased on r138802.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800263</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 09:22:20 -0800</bug_when>
    <thetext>Attachment 181313 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1709:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 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>800580</commentid>
    <comment_count>50</comment_count>
      <attachid>181313</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-04 13:25:39 -0800</bug_when>
    <thetext>Comment on attachment 181313
LLInt implementation for MIPS reusing risc.rb.

View in context: https://bugs.webkit.org/attachment.cgi?id=181313&amp;action=review

&gt; Source/JavaScriptCore/offlineasm/mips.rb:549
&gt; +        result = mipsLowerMisplacedAddressesSpecific(result)

I see that you split riscLowerMisplacedAddresses() into riscLowerMisplacedAddressesCommon() and riscLowerMisplacedAddressesSpecific().  It seems quite arbitrary which instruction is considered common and which is platform specific.  I suggest you do the following instead:

1. Undo the common and specific split in risk.rb.
2. Refactor riscLowerMisplacedAddresses() to call a riscLowerMisplacedAddressesInInstruction() which actually does the &quot;lowering&quot; for a single instruction instead of a list of instructions.  
3. In mips.rb, call a mipsLowerMisplacedAddresses() instead of riscLowerMisplacedAddresses().
4. In mipsLowerMisplacedAddresses(),
    3.1 Handle the instructions that are specific to mips i.e. overridden behavior.
    3.2 For instructions that the mips port does not wish to override, call down to riscLowerMisplacedAddressesInInstruction() instead of doing the default &quot;newList &lt;&lt; node&quot;.

With this approach, a platform specific port gets to override the instructions it cares about, and reuse the rest.  And there is no need to determine ahead of time which instruction is common / specific.  Can you do this refactor please?

Other than that, everything else looks good to me.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801042</commentid>
    <comment_count>51</comment_count>
      <attachid>181313</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-05 23:20:39 -0800</bug_when>
    <thetext>Comment on attachment 181313
LLInt implementation for MIPS reusing risc.rb.

View in context: https://bugs.webkit.org/attachment.cgi?id=181313&amp;action=review

r=me, but either rename common/specific to something better or come up with a way of avoiding refactorings in risc.rb altogether.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:273
&gt; +                comp = node.opcode[1,1] == &quot;b&quot; ? &quot;sltub&quot; : &quot;sltu&quot;

I tend to like consistency; having one style that we stick to makes it easier to understand the code at a glance.

So, I think it&apos;s valuable to stick to our space-after-comma convention throughout webkit.  So I would write node.opcode[1, 1].

But I would like it even better if for this purpose we used node.opcode[1..1], which makes it more obvious what is going on.

But what I would have liked even better is if you had simply said node.opcode[1] == ?b, which I believe is the more canonical Ruby way of testing the second character.

&gt; Source/JavaScriptCore/offlineasm/mips.rb:379
&gt; +                    tmp = SpecialRegister.new(&quot;$ra&quot;)

Any reason why you&apos;re not creating one singleton instance of SpecialRegister for each special register you need ($ra, $t9, etc)?  That&apos;s what the other backends do, and it preserves the invariant that identity equality implies that it&apos;s the same register.

&gt;&gt; Source/JavaScriptCore/offlineasm/mips.rb:549
&gt;&gt; +        result = mipsLowerMisplacedAddressesSpecific(result)
&gt; 
&gt; I see that you split riscLowerMisplacedAddresses() into riscLowerMisplacedAddressesCommon() and riscLowerMisplacedAddressesSpecific().  It seems quite arbitrary which instruction is considered common and which is platform specific.  I suggest you do the following instead:
&gt; 
&gt; 1. Undo the common and specific split in risk.rb.
&gt; 2. Refactor riscLowerMisplacedAddresses() to call a riscLowerMisplacedAddressesInInstruction() which actually does the &quot;lowering&quot; for a single instruction instead of a list of instructions.  
&gt; 3. In mips.rb, call a mipsLowerMisplacedAddresses() instead of riscLowerMisplacedAddresses().
&gt; 4. In mipsLowerMisplacedAddresses(),
&gt;     3.1 Handle the instructions that are specific to mips i.e. overridden behavior.
&gt;     3.2 For instructions that the mips port does not wish to override, call down to riscLowerMisplacedAddressesInInstruction() instead of doing the default &quot;newList &lt;&lt; node&quot;.
&gt; 
&gt; With this approach, a platform specific port gets to override the instructions it cares about, and reuse the rest.  And there is no need to determine ahead of time which instruction is common / specific.  Can you do this refactor please?
&gt; 
&gt; Other than that, everything else looks good to me.  Thanks.

I agree with Mark that your use of the terms &quot;Common&quot; and &quot;Specific&quot; is confusing.  I don&apos;t know what &quot;common&quot; or &quot;specific&quot; means (seriously, I don&apos;t - they&apos;re really uninformative words and could mean anything).  While the refactoring that Mark suggests would work, I would be happy with either of the following options:

1) Don&apos;t change risc.rb at all, and just call mipsLowerMisplacedAddressesSpecific before calling riskLowerMisplacedAddresses.  Do you think you could make that work?  It would clearly be less intrusive (which I like) but you don&apos;t have to go this route if you can&apos;t easily make it work.

2) Just use better names than &quot;Common&quot; and &quot;Specific&quot;.  Instead of &quot;riscLowerMisplacedAddressesSpecific&quot; I would say &quot;riscLowerMisplacedAddressesForJumpsAndCalls&quot;.  Instead of &quot;riscLowerMisplacedAddressesCommon&quot;, I would say &quot;riscLowerMisplacedAddressesForEverythingElse&quot;.  &quot;ForEverythingElse&quot; has the benefit of alerting the person reading the code to the fact that there are other variants of riscLowerMisplacedAddresses that do things for some other types of instructions.  It&apos;s better than &quot;common&quot; because there&apos;s no risk of people assuming that &quot;common&quot; subsumes &quot;specific&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801428</commentid>
    <comment_count>52</comment_count>
      <attachid>181531</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-07 10:50:14 -0800</bug_when>
    <thetext>Created attachment 181531
LLInt implementation for MIPS reusing risc.rb.

Thank you for the reviews. I think I managed to add all the requested modifications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801432</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 10:53:35 -0800</bug_when>
    <thetext>Attachment 181531 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/dfg/DFGOperations.cpp:1709:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 13 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>801487</commentid>
    <comment_count>54</comment_count>
      <attachid>181531</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 11:41:32 -0800</bug_when>
    <thetext>Comment on attachment 181531
LLInt implementation for MIPS reusing risc.rb.

Clearing flags on attachment: 181531

Committed r138970: &lt;http://trac.webkit.org/changeset/138970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801488</commentid>
    <comment_count>55</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 11:41:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853566</commentid>
    <comment_count>56</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-03-12 09:49:56 -0700</bug_when>
    <thetext>*** Bug 101793 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169391</attachid>
            <date>2012-10-18 04:27:00 -0700</date>
            <delta_ts>2012-10-18 04:56:58 -0700</delta_ts>
            <desc>LLInt implementation for MIPS.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>64315</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM1NzRhYTAuLmM5NDEzODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEwLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6IFBJQyBmaXg6IGp1bXAgdmlhICR0OSByZWcuCisgICAgICAgICogZGZnL0RGR09wZXJhdGlv
bnMuY3BwOiBQSUMgZml4OiB1c2UgJHQ5IHJlZy4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICog
aml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpKSVRUaHVua3MpOiBB
ZGRpdGlub25hbCAkcyMgcmVnaXN0ZXJzIHVzZS5nZSBhZGRlZC4KKyAgICAgICAgKEpTQyk6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmg6IEFkZGl0aW5vbmFsICRzIyByZWdpc3RlcnMgdXNlLmdl
IGFkZGVkLgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRP
ZmZsaW5lQXNtQ29uZmlnLmg6IE1JUFMgYXJjaC4gYWRkZWQuCisgICAgICAgICogbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc206IE1JUFMgYXJjaC4gYWRkZWQuCisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbTogTUlQUyBhcmNoLiBhZGRlZC4KKyAgICAgICAg
KiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOiBNSVBTIGFyY2guIGFkZGVkLgorICAgICAgICAqIG9m
ZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOiBNSVBTIGFyY2guIGFkZGVkLgorICAgICAgICAqIG9m
ZmxpbmVhc20vbWlwcy5yYjogQWRkZWQuCisKIDIwMTItMTAtMTcgIFpvbHRhbiBIb3J2YXRoICA8
em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBKU0hlYXAgbWVtb3J5IG1l
YXN1cmVtZW50IG9mIHRoZSBQYWdlTG9hZCBwZXJmb3JtYWNldGVzdHMgc2luY2UgaXQgY3JlYXRl
cyBib2d1cyBKU0dsb2JhbERhdGFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBmYzZmOWY0Li4yOWRmMjU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJN
SVBTLmgKQEAgLTEzMDQsNyArMTMwNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQganVtcChSZWdp
c3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmpyKHRhcmdldCk7Cisg
ICAgICAgIG1vdmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmpyKE1JUFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBkYjczNmZlLi4zYWMyNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKQEAgLTQ3LDYgKzQ3LDE2IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaWYg
V1RGX01JUFNfUElDCisjZGVmaW5lIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24pIFwKKyAg
ICAgICAgIi5zZXQgbm9yZW9yZGVyIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4i
IFwKKyAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCisgICAgICAgICJsYSAkdDksICIgTE9D
QUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iCisjZWxzZQorI2RlZmluZSBMT0FEX0ZVTkNUSU9O
X1RPX1Q5KGZ1bmN0aW9uKSAiIiAiXG4iCisjZW5kaWYKKwogI2lmIEVOQUJMRShERkdfSklUKQog
CiAjaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoWDg2XzY0KQpAQCAtMjAxLDYgKzIxMSw1MiBAQAog
ICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNz
IiAiXG4iIFwKICAgICApOwogCisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShNSVBTKQorCisj
ZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FKGZ1bmN0aW9uKSBc
CisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAor
ICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9O
X1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAibW92ZSAkYTEs
ICRyYSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0
aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBF
Ul9XSVRIX1JFVFVSTl9BRERSRVNTX0VDSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIu
dGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIg
XAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1
bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0
aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgIm1vdmUgJGEzLCAkcmEiICJcbiIgXAorICAgICAg
ICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4i
IFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVT
U19FSkkoZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChm
dW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAor
ICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisg
ICAgICAgICJzdyAkcmEsIDIwKCRzcCkiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVS
RU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVm
aW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkNJKGZ1bmN0aW9uKSBc
CisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAor
ICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9O
X1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAy
NCgkc3ApIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJX
aXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKwogI2VuZGlmCiAKICNkZWZpbmUgUF9G
VU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXApAQCAtMTUw
MCw2ICsxNTU2LDE3IEBAIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoi
ICJcbiIKICAgICAibW92IHIwLCByNSIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOworI2VsaWYgQ09NUElM
RVIoR0NDKSAmJiBDUFUoTUlQUykKK2FzbSgKKyIudGV4dCIgIlxuIgorIi5nbG9ibCAiIFNZTUJP
TF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgorSElERV9TWU1CT0woZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSkgIlxuIgorU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiOiIgIlxuIgorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZVdpdGhFeGVjU3RhdGUpCisgICAgImx3ICRzMCwgLTQwKCRzMCkiICJcbiIKKyAgICAibW92
ZSAkYTAsICRzMCIgIlxuIgorICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCispOwogI2VuZGlmCiAKIGV4dGVybiAiQyIgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAppbmRleCBmMWYyZjRjLi5jZTM4MDViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMjgwLDExICsyODAsMTMgQEAgZXh0ZXJuICJDIiB7
CiAjZGVmaW5lIFBSRVNFUlZFRF9TMF9PRkZTRVQgICAgICAgICA2NAogI2RlZmluZSBQUkVTRVJW
RURfUzFfT0ZGU0VUICAgICAgICAgNjgKICNkZWZpbmUgUFJFU0VSVkVEX1MyX09GRlNFVCAgICAg
ICAgIDcyCi0jZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgNzYKLSNkZWZp
bmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDgwCi0jZGVmaW5lIFJFR0lTVEVSX0ZJTEVf
T0ZGU0VUICAgICAgICA4NAotI2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQgICAgICAgICAxMDAK
LSNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAgICAgMTA0CisjZGVmaW5lIFBSRVNFUlZF
RF9TM19PRkZTRVQgICAgICAgICA3NgorI2RlZmluZSBQUkVTRVJWRURfUzRfT0ZGU0VUICAgICAg
ICAgODAKKyNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4NAorI2RlZmlu
ZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQgODgKKyNkZWZpbmUgUkVHSVNURVJfRklMRV9P
RkZTRVQgICAgICAgIDkyCisjZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAgICAgIDEwOAor
I2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAgICAxMTIKICNlbGlmIENQVShTSDQpCiAj
ZGVmaW5lIFNZTUJPTF9TVFJJTkcobmFtZSkgI25hbWUKIC8qIGNvZGUgKHI0KSwgSlNTdGFjayog
KHI1KSwgQ2FsbEZyYW1lKiAocjYpLCB2b2lkKiB1bnVzZWQxIChyNyksIHZvaWQqIHVudXNlZDIo
c3ApLCBKU0dsb2JhbERhdGEgKHNwKSovCkBAIC0zMTgsNiArMzIwLDkgQEAgU1lNQk9MX1NUUklO
RyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJhZGQgIzEyLCByMTUiICJcbiIKICAgICAi
cnRzIiAiXG4iCiAgICAgIm5vcCIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJh
bXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorU1lN
Qk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogKTsKIAogYXNtIHZvbGF0aWxl
ICgKQEAgLTQ1MSw2ICs0NTYsOCBAQCBhc20gKAogU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5l
KSAiOiIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LC0iIFNUUklOR0laRV9WQUxVRV9PRihTVEFD
S19MRU5HVEgpICJcbiIKICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMjAs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCisg
ICAgInN3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKICAgICAic3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZF
RF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxNiwi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKQEAg
LTQ2MCwxOSArNDY3LDI0IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIK
ICAgICAibW92ZSAgJDE2LCQ2ICAgICAgICMgc2V0IGNhbGxGcmFtZVJlZ2lzdGVyIiAiXG4iCiAg
ICAgImxpICAgICQxNyw1MTIgICAgICAjIHNldCB0aW1lb3V0Q2hlY2tSZWdpc3RlciIgIlxuIgog
ICAgICJtb3ZlICAkMjUsJDQgICAgICAgIyBtb3ZlIGV4ZWN1dGFibGVBZGRyZXNzIHRvIHQ5IiAi
XG4iCi0gICAgInN3ICAgICQ1LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFJFR0lTVEVSX0ZJTEVfT0ZG
U0VUKSAiKCQyOSkgIyBzdG9yZSBKU1N0YWNrIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKKyAgICAi
c3cgICAgJDUsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUkVHSVNURVJfRklMRV9PRkZTRVQpICIoJDI5
KSAjIHN0b3JlIHN0YWNrIHRvIGN1cnJlbnQgc3RhY2siICJcbiIKICAgICAibHcgICAgJDksIiBT
VFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIICsgMjApICIoJDI5KSAgICAjIGxvYWQgZ2xv
YmFsRGF0YSBmcm9tIHByZXZpb3VzIHN0YWNrIiAiXG4iCiAgICAgImphbHIgICQyNSIgIlxuIgog
ICAgICJzdyAgICAkOSwiIFNUUklOR0laRV9WQUxVRV9PRihHTE9CQUxfREFUQV9PRkZTRVQpICIo
JDI5KSAgICMgc3RvcmUgZ2xvYmFsRGF0YSB0byBjdXJyZW50IHN0YWNrIiAiXG4iCiAgICAgImx3
ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKICAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9P
RkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklO
R0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcg
ICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIg
IlxuIgogICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVS
Tl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAg
ICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgog
Ii5zZXQgcmVvcmRlciIgIlxuIgogIi5zZXQgbWFjcm8iICJcbiIKICIuZW5kICIgU1lNQk9MX1NU
UklORyhjdGlUcmFtcG9saW5lKSAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFt
cG9saW5lRW5kKSAiXG4iCitISURFX1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1C
T0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCiApOwogCiBhc20gKApAQCAtNDg1
LDggKzQ5Nyw4IEBAIGFzbSAoCiAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1w
b2xpbmUpICJcbiIKIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4i
CiAjaWYgV1RGX01JUFNfUElDCi0gICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCisiLmNw
bG9hZCAkMzEiICJcbiIKICAgICAibGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhy
b3cpICJcbiIKICIuc2V0IG5vbWFjcm8iICJcbiIKICAgICAiYmFsICIgU1lNQk9MX1NUUklORyhj
dGlfdm1fdGhyb3cpICJcbiIKQEAgLTQ5OCw2ICs1MTAsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aVZN
VGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAg
ICAibHcgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIo
JDI5KSIgIlxuIgorICAgICJsdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzRfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5
KSIgIlxuIgogICAgICJqciAgICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklO
R0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKQEAgLTUxOCw2ICs1MzIsOCBAQCBTWU1C
T0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAg
ICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIo
JDI5KSIgIlxuIgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNT
X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAk
MjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtODE1LDYg
KzgzMSw4IEBAIEpJVFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkK
ICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2
ZWRTMCkgPT0gUFJFU0VSVkVEX1MwX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZT
RVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMyKSA9PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMykgPT0gUFJFU0VSVkVEX1Mz
X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzQpID09IFBSRVNFUlZFRF9TNF9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3Mp
ID09IFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwpAQCAt
MTEwNSw5ICsxMTIzLDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFQgdGhyb3dFeGNl
cHRpb25Gcm9tT3BDYWxsKEpJVFN0YWNrRnJhbWUmIGppdFN0YWNrRnIKICAgICAgICAgIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAogICAgICAgICAiLmVudCAiIFNZTUJP
TF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAogICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29w
KSAiOiIgIlxuIiBcCi0gICAgICAgICJsdyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX0dQX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKLSAgICAgICAgInN3ICAgICQzMSwiIFNU
UklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxu
IiBcCiAgICAgICAgICIuc2V0IG1hY3JvIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAi
XG4iIFwKKyAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRV
Uk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUsIiBT
WU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNldCBu
b21hY3JvIiAiXG4iIFwKICAgICAgICAgIi5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9T
VFJJTkcoSklUU3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzLmgKaW5kZXggNGEzYjI1Mi4uODdkYmIzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuaApAQCAtMjIzLDYgKzIyMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRTMDsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzE7CiAgICAgICAgIHZv
aWQqIHByZXNlcnZlZFMyOworICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMzsKKyAgICAgICAgdm9p
ZCogcHJlc2VydmVkUzQ7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CiAK
ICAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXgg
ZGEyZDUxMC4uMTU3NTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludE9mZmxpbmVBc21Db25maWcuaApAQCAtMzgsNiArMzgsNyBAQAogI2RlZmluZSBPRkZM
SU5FX0FTTV9BUk12NyAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9G
RkxJTkVfQVNNX0FSTXY3cyAwCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMAogCiAjZWxzZSAv
LyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIApAQCAtNjcsNiArNjgsMTIgQEAKICNkZWZpbmUgT0ZG
TElORV9BU01fWDg2XzY0IDAKICNlbmRpZgogCisjaWYgQ1BVKE1JUFMpCisjZGVmaW5lIE9GRkxJ
TkVfQVNNX01JUFMgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZW5kaWYK
KwogI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkK
QEAgLTExMSw0ICsxMTgsMTcgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fVkFMVUVfUFJPRklMRVIg
MAogI2VuZGlmCiAKKyNpZiBDUFUoTUlQUykKKyNpZmRlZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUg
Uyh4KSAjeAorI2RlZmluZSBTWCh4KSBTKHgpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChy
ZWcpIFwKKyAgICAiLnNldCBub3Jlb3JkZXJcbiIgXAorICAgICIuY3Bsb2FkICIgU1gocmVnKSAi
XG4iIFwKKyAgICAiLnNldCByZW9yZGVyXG4iCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9D
UExPQUQocmVnKQorI2VuZGlmCisjZW5kaWYKKwogI2VuZGlmIC8vIExMSW50T2ZmbGluZUFzbUNv
bmZpZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20KaW5kZXggYWQ1MDllMC4uZWJjNjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTQ0LDYgKzE0
NCw4IEBAIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJl
Z2lzdGVyKQogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzaWYg
WDg2IG9yIFg4Nl82NAogICAgICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgorICAgIGVsc2lm
IE1JUFMKKyAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgogICAgIGVsc2UKICAg
ICAgICAgZXJyb3IKICAgICBlbmQKQEAgLTE1Nyw2ICsxNTksOCBAQCBtYWNybyByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKICAgICAgICAgbW92ZSBzb3Vy
Y2VSZWdpc3RlciwgbHIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291
cmNlUmVnaXN0ZXIKKyAgICBlbHNpZiBNSVBTCisgICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIs
IGxyCiAgICAgZWxzZQogICAgICAgICBlcnJvcgogICAgIGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRl
eCBmMGQ0NWViLi45OGJhMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTEzLDYgKzExMywxMCBA
QCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCiAgICAgICAgIHBva2UgYXJnMSwg
MAogICAgICAgICBwb2tlIGFyZzIsIDEKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgIGVsc2lm
IE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAgICAgICBtb3ZlIGFyZzIsIGExCisgICAg
ICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgY2xvb3BDYWxsU2xv
d1BhdGggZnVuY3Rpb24sIGFyZzEsIGFyZzIKICAgICBlbHNlCkBAIC0xMzQsNiArMTM4LDEyIEBA
IG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKICAgICAgICAg
cG9rZSBhcmczLCAyCiAgICAgICAgIHBva2UgYXJnNCwgMwogICAgICAgICBjYWxsIGZ1bmN0aW9u
CisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1vdmUgYXJn
MiwgYTEKKyAgICAgICAgbW92ZSBhcmczLCBhMgorICAgICAgICBtb3ZlIGFyZzQsIGEzCisgICAg
ICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgZXJyb3IKICAgICBl
bHNlCkBAIC0xODgwLDYgKzE4OTAsMjAgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhl
Y3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRv
RnVuY3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQz
KQogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBl
bHNpZiBNSVBTCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0
MworICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0M10KKyAg
ICAgICAgbW92ZSB0MCwgdDIKKyAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KHQzKQorICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KKyAgICAgICAgbW92ZSBjZnIs
IHQwCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAg
ICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKKyAgICAgICAgbW92ZSB0
MiwgY2ZyCisgICAgICAgIG1vdmUgdDAsIGEwCisgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNl
dFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAg
ICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtz
cF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3Qz
XQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMu
cmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCA3
OGU1NDU3Li5lZjkzNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9iYWNrZW5kcy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9i
YWNrZW5kcy5yYgpAQCAtMjUsNiArMjUsNyBAQCByZXF1aXJlICJjb25maWciCiByZXF1aXJlICJh
cm12NyIKIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIng4NiIKK3JlcXVpcmUgIm1pcHMiCiByZXF1
aXJlICJjbG9vcCIKIAogQkFDS0VORFMgPQpAQCAtMzIsNiArMzMsNyBAQCBCQUNLRU5EUyA9CiAg
ICAgICJYODYiLAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKKyAgICAgIk1JUFMiLAog
ICAgICAiQ19MT09QIgogICAgIF0KIApAQCAtNDUsNiArNDcsNyBAQCBXT1JLSU5HX0JBQ0tFTkRT
ID0KICAgICAgIlg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAorICAgICAiTUlQ
UyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggZGRiMWJiOS4uNjkxZGQzOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAt
MjIxLDYgKzIyMSwxNiBAQCBBUk12N19JTlNUUlVDVElPTlMgPQogICAgICAib3JpcyIKICAgICBd
CiAKK01JUFNfSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgIm1vdnoiLAorICAgICJtb3ZuIiwK
KyAgICAic2x0IiwKKyAgICAic2x0dSIsCisgICAgInBpY2hkciIsCisgICAgInBpY2hkcnJhIgor
ICAgIF0KKwogQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAiY2xvb3BDcmFzaCIsICAg
ICAgICAgICAjIG5vIG9wZXJhbmRzCkBAIC0yMzcsNyArMjQ3LDcgQEAgQ1hYX0lOU1RSVUNUSU9O
UyA9CiAgICAgICJjbG9vcERvIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAK
LUlOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBB
Uk12N19JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCitJTlNUUlVDVElPTlMgPSBNQUNS
T19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsg
TUlQU19JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRF
Uk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlc
XFonKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBz
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjZhNjNiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpAQCAtMCwwICsxLDExOTcgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEyIE1JUFMgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTUlQUyBURUNITk9MT0dJ
RVMsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBNSVBTIFRFQ0hOT0xPR0lF
UywgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMg
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3JlcXVp
cmUgImFzdCIKK3JlcXVpcmUgIm9wdCIKKworY2xhc3MgQXNzZW1ibGVyCisgICAgZGVmIHB1dFN0
cihzdHIpCisgICAgICAgIEBvdXRwLnB1dHMgc3RyCisgICAgZW5kCitlbmQKKworY2xhc3MgTm9k
ZQorICAgIGRlZiBtaXBzU2luZ2xlSGkKKyAgICAgICAgZG91YmxlT3BlcmFuZCA9IG1pcHNPcGVy
YW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0i
IHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eXCRmLworICAgICAgICAiJGYiICsgKCR+LnBvc3Rf
bWF0Y2gudG9faSArIDEpLnRvX3MKKyAgICBlbmQKKyAgICBkZWYgbWlwc1NpbmdsZUxvCisgICAg
ICAgIGRvdWJsZU9wZXJhbmQgPSBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVn
aXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXlwk
Zi8KKyAgICAgICAgZG91YmxlT3BlcmFuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNpYWxS
ZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgQG5hbWUK
KyAgICBlbmQKKworICAgIGRlZiBkdW1wCisgICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAgICBk
ZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2VuZAorCitNSVBTX1RFTVBfR1BS
UyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDUiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ2
IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NyIpLAorICAgICAgICAgICAgICAgICAgICBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkdDgiKV0KK01JUFNfVEVNUF9GUFJTID0gW1NwZWNpYWxSZWdpc3Rl
ci5uZXcoIiRmMTYiKV0KK01JUFNfU0NSQVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
ZjE4IikKKworZGVmIG1pcHNNb3ZlSW1tZWRpYXRlKHZhbHVlLCByZWdpc3RlcikKKyAgICBpZiB2
YWx1ZSA9PSAwCisgICAgICAgICRhc20ucHV0cyAiYWRkICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9
LCAkemVybywgJHplcm8iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImxpICN7cmVnaXN0
ZXIubWlwc09wZXJhbmR9LCAje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCisKK2NsYXNzIFJlZ2lz
dGVySUQKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdo
ZW4gImEwIgorICAgICAgICAgICAgIiRhMCIKKyAgICAgICAgd2hlbiAiYTEiCisgICAgICAgICAg
ICAiJGExIgorICAgICAgICB3aGVuICJyMCIsICJ0MCIKKyAgICAgICAgICAgICIkdjAiCisgICAg
ICAgIHdoZW4gInIxIiwgInQxIgorICAgICAgICAgICAgIiR2MSIKKyAgICAgICAgd2hlbiAidDIi
CisgICAgICAgICAgICAiJHQyIgorICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgICAgICIkczMi
CisgICAgICAgIHdoZW4gInQ0IiAgICMgUEMgcmVnIGluIGxsaW50CisgICAgICAgICAgICAiJHMy
IgorICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgICAgICIkdDUiCisgICAgICAgIHdoZW4gInQ2
IgorICAgICAgICAgICAgIiR0NiIKKyAgICAgICAgd2hlbiAidDciCisgICAgICAgICAgICAiJHQ3
IgorICAgICAgICB3aGVuICJ0OCIKKyAgICAgICAgICAgICIkdDgiCisgICAgICAgIHdoZW4gImNm
ciIKKyAgICAgICAgICAgICIkczAiCisgICAgICAgIHdoZW4gImxyIgorICAgICAgICAgICAgIiRy
YSIKKyAgICAgICAgd2hlbiAic3AiCisgICAgICAgICAgICAiJHNwIgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIE1JUFMgYXQgI3tjb2Rl
T3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgRlBSZWdp
c3RlcklECisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3
aGVuICJmdDAiLCAiZnIiCisgICAgICAgICAgICAiJGYwIgorICAgICAgICB3aGVuICJmdDEiCisg
ICAgICAgICAgICAiJGYyIgorICAgICAgICB3aGVuICJmdDIiCisgICAgICAgICAgICAiJGY0Igor
ICAgICAgICB3aGVuICJmdDMiCisgICAgICAgICAgICAiJGY2IgorICAgICAgICB3aGVuICJmdDQi
CisgICAgICAgICAgICAiJGY4IgorICAgICAgICB3aGVuICJmdDUiCisgICAgICAgICAgICAiJGYx
MCIKKyAgICAgICAgd2hlbiAiZmEwIgorICAgICAgICAgICAgIiRmMTIiCisgICAgICAgIHdoZW4g
ImZhMSIKKyAgICAgICAgICAgICIkZjE0IgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlz
ZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIE1JUFMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIK
KyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIG1p
cHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVlfSBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IiBpZiB2YWx1ZSA8IC0weDdmZmYgb3IgdmFsdWUgPiAweDdmZmYK
KyAgICAgICAgIiN7dmFsdWV9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFkZHJlc3MKKyAgICBk
ZWYgbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4N2ZmZiBvciBvZmZzZXQudmFsdWUgPiAweDdm
ZmYKKyAgICAgICAgIiN7b2Zmc2V0LnZhbHVlfSgje2Jhc2UubWlwc09wZXJhbmR9KSIKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBBYnNvbHV0ZUFkZHJlc3MKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAg
ICAgICAgcmFpc2UgIlVuY29udmVydGVkIGFic29sdXRlIGFkZHJlc3MgYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCisjCisjIExvd2VyICdhbmQnIG1hc2tlZCBicmFuY2hl
cworIworCitkZWYgbG93ZXJNSVBTQ29uZEJyYW5jaChsaXN0LCBjb25kT3AsIG5vZGUpCisgICAg
aWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25k
T3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCBT
cGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgZWxz
aWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIDpncHIpCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZGkiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5k
c1sxXSwgdG1wXSkKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kT3AsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiks
IG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJFeHBlY3RlZCAy
IG9yIDMgb3BlcmFuZHMgYnV0IGdvdCAje25vZGUub3BlcmFuZHMuc2l6ZX0gYXQgI3tub2RlLmNv
ZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXJpbmcgb2YgYnJhbmNo
IG9wcy4gRm9yIGV4YW1wbGU6CisjCisjIGJhZGRpeiBmb28sIGJhciwgYmF6CisjCisjIHdpbGwg
YmVjb21lOgorIworIyBhZGRpIGZvbywgYmFyCisjIGJ6IGJhegorIworCitkZWYgbWlwc0xvd2Vy
QnJhbmNoT3BzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAg
ICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAg
ICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAvXmIoYWRkaXxzdWJpfG9yaXxh
ZGRwKS8KKyAgICAgICAgICAgICAgICBvcCA9ICQxCisgICAgICAgICAgICAgICAgYmMgPSAkfi5w
b3N0X21hdGNoCisgICAgICAgICAgICAgICAgYnJhbmNoID0gImIiICsgYmMgCisKKyAgICAgICAg
ICAgICAgICBjYXNlIG9wCisgICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIgorICAg
ICAgICAgICAgICAgICAgICBvcCA9ICJhZGRpIgorICAgICAgICAgICAgICAgIHdoZW4gInN1Ymki
CisgICAgICAgICAgICAgICAgICAgIG9wID0gInN1YmkiCisgICAgICAgICAgICAgICAgd2hlbiAi
b3JpIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJvcmkiCisgICAgICAgICAgICAgICAgZW5k
CisKKyAgICAgICAgICAgICAgICB6ZXJvID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKQor
ICAgICAgICAgICAgICAgIGlmIGJjID09ICJvIgorICAgICAgICAgICAgICAgICAgICBjYXNlIG9w
CisgICAgICAgICAgICAgICAgICAgIHdoZW4gImFkZGkiCisgICAgICAgICAgICAgICAgICAgICAg
ICAjICBhZGR1ICRzMCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAk
dDAsICRzMSwgJHMyCisgICAgICAgICAgICAgICAgICAgICAgICAjICBibHQgJHQwLCAkemVybywg
bm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMCwgJHMx
CisgICAgICAgICAgICAgICAgICAgICAgICAjICBibHQgJHQwLCAkemVybywgb3ZlcmZsb3cKKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgbm8gb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgICAg
ICAgICAjIHJlc3Qgb2YgcHJvZ3JhbQorICAgICAgICAgICAgICAgICAgICAgICAgdHIgPSBUbXAu
bmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9
IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAg
bm9GbG93ID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vZmxvdyIpCisgICAgICAgICAgICAgICAgICAg
ICAgICBub0Zsb3dSZWYgPSBMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhub2RlLmNvZGVPcmlnaW4s
IG5vRmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRz
WzFdLCB0cl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3Bl
cmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywgbm9GbG93UmVm
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbdHIsIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vRmxvdworICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFt0ciwg
bm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAgICAgICAgICAgIHdoZW4gInN1YmkiCisgICAg
ICAgICAgICAgICAgICAgICAgICAjICBzdWJ1ICRzMCwgJHMxLCAkczIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgIHhvciAkdDAsICRzMSwgJHMyCisgICAgICAgICAgICAgICAgICAgICAgICAj
ICBiZ2UgJHQwLCAkemVybywgbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMg
IHhvciAkdDAsICRzMCwgJHMxCisgICAgICAgICAgICAgICAgICAgICAgICAjICBibHQgJHQwLCAk
emVybywgb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMgbm8gb3ZlcmZsb3c6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRt
cC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgdG1w
ID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAg
ICB6ZXJvID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbm9GbG93ID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vZmxvdyIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBub0Zsb3dSZWYgPSBMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG5vRmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9w
ZXJhbmRzWzBdLCB0cl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW25vZGUub3BlcmFuZHNbMV0sIG5v
ZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWd0ZXEiLCBbdG1wLCB6ZXJvLCBu
b0Zsb3dSZWZdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXSwgdG1w
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgImJpbHQiLCBbdG1wLCB6ZXJvLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9GbG93CisgICAgICAgICAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3Zl
IiwgW3RyLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAib3Jp
IgorICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdndlcmZsb3cgYXQgb3JpCisgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLjFdKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNb
MV0uaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgYWRkciA9IG5vZGUub3Bl
cmFuZHNbMV0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkcCIsIFthZGRyLCB0cl0pCisgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgdHJdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVwIiwgW3RyLCBh
ZGRyXSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
dHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLi0y
XSkKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgYnJhbmNoLCBbdHIsIHplcm8sIG5v
ZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4g
ImJtdWxpbyIKKyAgICAgICAgICAgICAgICB0bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgICAgICAgICAgdG1wMiA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6
Z3ByKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgInNtdWxsaSIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCBu
b2RlLm9wZXJhbmRzWzFdLCB0bXAxXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJd
LCBJbW1lZGlhdGUubmV3KG5vZGUuY29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIs
IFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3aGVuIC9eYm11
bGkvCisgICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGki
LCBub2RlLm9wZXJhbmRzWzAuLi0yXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5vcGVy
YW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYSIsICJi
cGEiLCAiYmJhIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2lu
LCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/
ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUu
b3BlcmFuZHNbMF1dKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgImJueiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJv
IiksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYmlhZXEiLCAiYnBhZXEi
LCAiYmJhZXEiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8g
InNsdHViIiA6ICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5v
cGVyYW5kc1sxXV0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAiYnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIp
LCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYiIsICJicGIiLCAiYmJi
IgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIg
OiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNb
MV1dKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImJueiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUu
b3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYmliZXEiLCAiYnBiZXEiLCAiYmJiZXEi
CisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisg
ICAgICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8gInNsdHViIiA6
ICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sw
XV0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAiYnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9w
ZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJ0aXoiLCAiYnRweiIsICJidGJ6IgorICAg
ICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJ6Iiwgbm9kZSkKKyAg
ICAgICAgICAgIHdoZW4gImJ0aW56IiwgImJ0cG56IiwgImJ0Ym56IgorICAgICAgICAgICAgICAg
IGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJueiIsIG5vZGUpCisgICAgICAgICAgICB3
aGVuICJidGlvIiwgImJ0cG8iLCAiYnRibyIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgICAgIHdoZW4gImJ0aXMiLCAiYnRwcyIsICJidGJzIgorICAgICAgICAgICAg
ICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJzIiwgbm9kZSkKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisg
ICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIExvd2VyaW5nIG9mIHNoaWZ0IG9wcy4gRm9y
IGV4YW1wbGU6CisjCisjIGxzaGlmdGkgZm9vLCBiYXIKKyMKKyMgd2lsbCBiZWNvbWU6CisjCisj
IGFuZGkgZm9vLCAzMSwgdG1wCisjIGxzaGlmdGkgdG1wLCBiYXIKKyMKKworZGVmIG1pcHNTYW5p
dGl6ZVNoaWZ0KG9wZXJhbmQsIGxpc3QpCisgICAgcmV0dXJuIG9wZXJhbmQgaWYgb3BlcmFuZC5p
bW1lZGlhdGU/CisKKyAgICB0bXAgPSBUbXAubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwgOmdwcikK
KyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJhbmRpIiwg
W29wZXJhbmQsIEltbWVkaWF0ZS5uZXcob3BlcmFuZC5jb2RlT3JpZ2luLCAzMSksIHRtcF0pCisg
ICAgdG1wCitlbmQKKworZGVmIG1pcHNMb3dlclNoaWZ0T3BzKGxpc3QpCisgICAgbmV3TGlzdCA9
IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5p
c19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAg
ICAgd2hlbiAibHNoaWZ0aSIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgImxzaGlmdHAiLCAicnNo
aWZ0cCIsICJ1cnNoaWZ0cCIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzLnNpemUg
PT0gMgorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbbWlwc1Nhbml0aXplU2hpZnQobm9kZS5vcGVyYW5k
c1swXSwgbmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCBub2RlLm9wY29kZSwgW25vZGUub3BlcmFuZHNbMF0sIG1pcHNTYW5pdGl6ZVNoaWZ0
KG5vZGUub3BlcmFuZHNbMV0sIG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBvcGVyYW5kcyBmb3Igc2hpZnQgYXQg
I3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgbm9kZS5vcGVyYW5kcy5zaXplID09IDMK
KyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAor
CisjCisjIExvd2VyaW5nIG9mIG1hbGZvcm1lZCBhZGRyZXNzZXMuIEZvciBleGFtcGxlOgorIwor
IyBsb2FkcCAxMDAwMFtmb29dLCBiYXIKKyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIG1vdmUgMTAw
MDAsIHRtcAorIyBhZGRwIGZvbywgdG1wCisjIGxvYWRwIDBbdG1wXSwgYmFyCisjCisKK2NsYXNz
IE5vZGUKKyAgICBkZWYgbWlwc0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzUmVjdXJzZShsaXN0KQor
ICAgICAgICBtYXBDaGlsZHJlbiB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAg
bm9kZS5taXBzTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNSZWN1cnNlKGxpc3QpCisgICAgICAgIH0K
KyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIG1pcHNMb3dlck1hbGZvcm1l
ZEFkZHJlc3Nlc1JlY3Vyc2UobGlzdCkKKyAgICAgICAgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4ZmZm
ZiBvciBvZmZzZXQudmFsdWUgPiAweGZmZmYKKyAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJtb3ZlIiwgW29mZnNldCwgdG1wXSkKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIHRtcF0pCisgICAgICAgICAgICBB
ZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgMCkp
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlbGYKKyAgICAgICAgZW5kCisgICAgZW5kCitl
bmQKKworY2xhc3MgQmFzZUluZGV4CisgICAgZGVmIG1pcHNMb3dlck1hbGZvcm1lZEFkZHJlc3Nl
c1JlY3Vyc2UobGlzdCkKKyAgICAgICAgaWYgc2NhbGVTaGlmdCA9PSAwCisgICAgICAgICAgICB0
bXAwID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgbGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFkZHAiLCBbYmFzZSwgaW5kZXgsIHRtcDBdKQorICAg
ICAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2Rl
T3JpZ2luLCBvZmZzZXQudmFsdWUpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdG1wMCA9
IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KGNvZGVPcmlnaW4sICJsc2hpZnRpIiwgW2luZGV4LCBJbW1lZGlhdGUubmV3KGNvZGVP
cmlnaW4sIHNjYWxlU2hpZnQpLCB0bXAwXSk7CisgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFtiYXNlLCB0bXAwXSkKKyAgICAgICAgICAgIEFk
ZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcDAsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgb2Zm
c2V0LnZhbHVlKSk7CisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEFic29sdXRl
QWRkcmVzcworICAgIGRlZiBtaXBzTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNSZWN1cnNlKGxpc3Qp
CisgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgbGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgIm1vdmUiLCBbYWRkcmVzcywgdG1wXSkKKyAg
ICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wLCBJbW1lZGlhdGUubmV3KGNvZGVPcmln
aW4sIDApKQorICAgIGVuZAorZW5kCisKK2RlZiBtaXBzTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXMo
bGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUg
fAorICAgICAgICBuZXdMaXN0IDw8IG5vZGUubWlwc0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzUmVj
dXJzZShuZXdMaXN0KQorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBv
ZiBtYWxmb3JtZWQgYWRkcmVzc2VzIGluIGRvdWJsZSBsb2FkcyBhbmQgc3RvcmVzLiBGb3IgZXhh
bXBsZToKKyMKKyMgbG9hZGQgW2ZvbywgYmFyLCA4XSwgYmF6CisjCisjIGJlY29tZXM6CisjCisj
IGxlYXAgW2ZvbywgYmFyLCA4XSwgdG1wCisjIGxvYWRkIFt0bXBdLCBiYXoKKyMKKworY2xhc3Mg
Tm9kZQorICAgIGRlZiBtaXBzRG91YmxlQWRkcmVzcyhsaXN0KQorICAgICAgICBzZWxmCisgICAg
ZW5kCitlbmQKKworY2xhc3MgQmFzZUluZGV4CisgICAgZGVmIG1pcHNEb3VibGVBZGRyZXNzKGxp
c3QpCisgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgbGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxlYXAiLCBbc2VsZiwgdG1wXSkKKyAg
ICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wLCBJbW1lZGlhdGUubmV3KGNvZGVPcmln
aW4sIDApKQorICAgIGVuZAorZW5kCisKK2RlZiBtaXBzTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNE
b3VibGUobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8
IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBj
YXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJsb2FkZCIKKyAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkZCIsIFtu
b2RlLm9wZXJhbmRzWzBdLm1pcHNEb3VibGVBZGRyZXNzKG5ld0xpc3QpLCBub2RlLm9wZXJhbmRz
WzFdXSkKKyAgICAgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZWQiLCBbbm9kZS5vcGVy
YW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXS5taXBzRG91YmxlQWRkcmVzcyhuZXdMaXN0KV0pCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAg
ICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBvZiBtaXNw
bGFjZWQgaW1tZWRpYXRlcy4gRm9yIGV4YW1wbGU6CisjCisjIHN0b3JlaSAwLCBbZm9vXQorIwor
IyB3aWxsIGJlY29tZToKKyMKKyMgbW92ZSAwLCB0bXAKKyMgc3RvcmVpIHRtcCwgW2Zvb10KKyMK
KworZGVmIG1pcHNMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMobGlzdCkKKyAgICBuZXdMaXN0ID0g
W10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlz
X2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAg
ICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIiwgInN0b3JlYiIKKyAgICAgICAgICAgICAgICBvcGVy
YW5kcyA9IG5vZGUub3BlcmFuZHMKKyAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA9IFtdCisg
ICAgICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CisgICAgICAgICAgICAgICAgICAgIHwgb3Bl
cmFuZCB8CisgICAgICAgICAgICAgICAgICAgIGlmIG9wZXJhbmQuaXNfYT8gSW1tZWRpYXRlCisg
ICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwg
OmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG9wZXJhbmQuY29kZU9yaWdpbiwgIm1vdmUiLCBbb3BlcmFuZCwgdG1wXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld09wZXJhbmRzIDw8IHRtcAorICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA8PCBvcGVyYW5kCisgICAgICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBuZXdP
cGVyYW5kcykKKyAgICAgICAgICAgIHdoZW4gInNsdCIsICJzbHR1IiwgInNsdGIiLCAic2x0dWIi
CisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisg
ICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29k
ZSwgW25vZGUub3BlcmFuZHNbMF0sIHRtcCwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKKyAgICAgICAgICAg
ICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAg
ICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9k
ZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibXVsaSIsIFt0bXBdICsgbm9kZS5vcGVyYW5k
c1sxLi4tMV0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IG5vZGUubWlwc0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2UobmV3TGlzdCkK
KyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAor
CisjCisjIExvd2VyaW5nIG9mIG1hbGZvcm1lZCBpbW1lZGlhdGVzIGV4Y2VwdCB3aGVuIHVzZWQg
aW4gYSAibW92ZSIgaW5zdHJ1Y3Rpb24uCisjIEZvciBleGFtcGxlOgorIworIyBhZGRwIDY0MjY0
MSwgZm9vCisjCisjIHdpbGwgYmVjb21lOgorIworIyBtb3ZlIDY0MjY0MSwgdG1wCisjIGFkZHAg
dG1wLCBmb28KKyMKKworY2xhc3MgTm9kZQorICAgIGRlZiBtaXBzTG93ZXJNYWxmb3JtZWRJbW1l
ZGlhdGVzUmVjdXJzZShsaXN0KQorICAgICAgICBtYXBDaGlsZHJlbiB7CisgICAgICAgICAgICB8
IG5vZGUgfAorICAgICAgICAgICAgbm9kZS5taXBzTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVj
dXJzZShsaXN0KQorICAgICAgICB9CisgICAgZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAg
IGRlZiBtaXBzTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVjdXJzZShsaXN0KQorICAgICAgICBz
ZWxmCisgICAgZW5kCitlbmQKKworY2xhc3MgQmFzZUluZGV4CisgICAgZGVmIG1pcHNMb3dlck1h
bGZvcm1lZEltbWVkaWF0ZXNSZWN1cnNlKGxpc3QpCisgICAgICAgIHNlbGYKKyAgICBlbmQKK2Vu
ZAorCitjbGFzcyBBYnNvbHV0ZUFkZHJlc3MKKyAgICBkZWYgbWlwc0xvd2VyTWFsZm9ybWVkSW1t
ZWRpYXRlc1JlY3Vyc2UobGlzdCkKKyAgICAgICAgc2VsZgorICAgIGVuZAorZW5kCisKK2NsYXNz
IEltbWVkaWF0ZQorICAgIGRlZiBtaXBzTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVjdXJzZShs
aXN0KQorICAgICAgICBpZiB2YWx1ZSA8IC0weGZmZmYgb3IgdmFsdWUgPiAweGZmZmYKKyAgICAg
ICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJtb3ZlIiwgW3NlbGYsIHRtcF0pCisgICAg
ICAgICAgICB0bXAKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2VsZgorICAgICAgICBlbmQK
KyAgICBlbmQKK2VuZAorCitkZWYgbWlwc0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0KQor
ICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAg
ICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNv
ZGUKKyAgICAgICAgICAgIHdoZW4gIm1vdmUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlLm1p
cHNMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXNSZWN1cnNlKG5ld0xpc3QpCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVu
ZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQg
YWRkcmVzc2VzLiBGb3IgZXhhbXBsZToKKyMKKyMgYWRkaSBmb28sIFtiYXJdCisjCisjIHdpbGwg
YmVjb21lOgorIworIyBsb2FkaSBbYmFyXSwgdG1wCisjIGFkZGkgZm9vLCB0bXAKKyMgc3RvcmVp
IHRtcCwgW2Jhcl0KKyMKKyMgQW5vdGhlciBleGFtcGxlOgorIworIyBhZGRpIFtmb29dLCBiYXIK
KyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIGxvYWRpIFtmb29dLCB0bXAKKyMgYWRkaSB0bXAsIGJh
cgorIworCitkZWYgbWlwc0FzUmVnaXN0ZXIocHJlTGlzdCwgcG9zdExpc3QsIG9wZXJhbmQsIHN1
ZmZpeCwgbmVlZFN0b3JlKQorICAgIHJldHVybiBvcGVyYW5kIHVubGVzcyBvcGVyYW5kLmFkZHJl
c3M/CisKKyAgICB0bXAgPSBUbXAubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwgaWYgc3VmZml4ID09
ICJkIiB0aGVuIDpmcHIgZWxzZSA6Z3ByIGVuZCkKKyAgICBwcmVMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJsb2FkIiArIHN1ZmZpeCwgW29wZXJhbmQsIHRtcF0p
CisgICAgaWYgbmVlZFN0b3JlCisgICAgICAgIHBvc3RMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhv
cGVyYW5kLmNvZGVPcmlnaW4sICJzdG9yZSIgKyBzdWZmaXgsIFt0bXAsIG9wZXJhbmRdKQorICAg
IGVuZAorICAgIHRtcAorZW5kCisKK2RlZiBtaXBzQXNSZWdpc3RlcnMocHJlTGlzdCwgcG9zdExp
c3QsIG9wZXJhbmRzLCBzdWZmaXgpCisgICAgbmV3T3BlcmFuZHMgPSBbXQorICAgIG9wZXJhbmRz
LmVhY2hfd2l0aF9pbmRleCB7CisgICAgICAgIHwgb3BlcmFuZCwgaW5kZXggfAorICAgICAgICBu
ZXdPcGVyYW5kcyA8PCBtaXBzQXNSZWdpc3RlcihwcmVMaXN0LCBwb3N0TGlzdCwgb3BlcmFuZCwg
c3VmZml4LCBpbmRleCA9PSBvcGVyYW5kcy5zaXplIC0gMSkKKyAgICB9CisgICAgbmV3T3BlcmFu
ZHMKK2VuZAorCitkZWYgbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCisgICAgbmV3
TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYg
bm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgcG9zdEluc3RydWN0aW9ucyA9IFtd
CisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJhZGRpIiwg
ImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibHNoaWZ0cCIsICJt
dWxpIiwgIm11bHAiLCAibmVnaSIsCisgICAgICAgICAgICAgICAgIm5lZ3AiLCAibm90aSIsICJv
cmkiLCAib3JpcyIsICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJyc2hpZnRwIiwgInVy
c2hpZnRwIiwgInN1YmkiLAorICAgICAgICAgICAgICAgICJzdWJwIiwgInN1YmlzIiwgInhvcmki
LCAieG9ycCIsIC9eYmkvLCAvXmJwLywgL15idGkvLCAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150
aS8KKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5v
cGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlwc0Fz
UmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJpIikp
CisgICAgICAgICAgICB3aGVuICJiYmVxIiwgImJibmVxIiwgImJiYSIsICJiYmFlcSIsICJiYmIi
LCAiYmJiZXEiLCAiYnRibyIsICJidGJ6IiwgImJ0Ym56IiwgInRieiIsICJ0Ym56IiwKKyAgICAg
ICAgICAgICAgICAidGJvIiwgImNiZXEiLCAiY2JuZXEiLCAiY2JhIiwgImNiYWVxIiwgImNiYiIs
ICJjYmJlcSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWlwc0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMs
ICJiIikpCisgICAgICAgICAgICB3aGVuICJiYmd0IiwgImJiZ3RlcSIsICJiYmx0IiwgImJibHRl
cSIsICJidGJzIiwgInRicyIsICJjYmd0IiwgImNiZ3RlcSIsICJjYmx0IiwgImNibHRlcSIKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlwc0FzUmVnaXN0
ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJicyIpKQorICAg
ICAgICAgICAgd2hlbiAiYWRkZCIsICJkaXZkIiwgInN1YmQiLCAibXVsZCIsICJzcXJ0ZCIsIC9e
YmQvCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUu
b3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pcHNB
c1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiZCIp
KQorICAgICAgICAgICAgd2hlbiAiam1wIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFu
ZHNbMF0uYWRkcmVzcz8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVy
Lm5ldygiJHJhIikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibG9hZGkiLCBbbm9kZS5vcGVyYW5kc1sw
XSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbbWlwc0FzUmVnaXN0ZXIobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5vcGVy
YW5kc1swXSwgInAiLCBmYWxzZSldKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
d2hlbiAiY2FsbCIKKyAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAg
IHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxv
YWRwIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3Rv
cmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5pc19h
PyBMYWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRz
WzBdCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICAgICAg
dG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibW92
ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICByZXN0b3Jl
R1AgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdG1w
ID0gbm9kZS5vcGVyYW5kc1swXQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUs
IFt0bXBdKQorICAgICAgICAgICAgICAgIGlmIHJlc3RvcmVHUAorICAgICAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1NwZWNpYWxSZWdpc3Rlci5uZXco
IiRzNCIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZ3AiKV0pCisgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICB3aGVuICJzbHQiLCAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWlwc0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2Rl
Lm9wZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgd2hlbiAic2x0dWIiLCAic2x0YiIKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlwc0FzUmVnaXN0ZXJz
KG5ld0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAiYnoi
LCAiYm56IiwgImJzIiwgImJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtaXBzQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMsICJp
IikpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9ucwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisg
ICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIExvd2VyaW5nIG9mIHJlZ2lzdGVyIHJldXNl
IGluIGNvbXBhcmUgaW5zdHJ1Y3Rpb25zLiBGb3IgZXhhbXBsZToKKyMKKyMgY2llcSB0MCwgdDEs
IHQwCisjCisjIHdpbGwgYmVjb21lOgorIworIyBtb3YgdG1wLCB0MAorIyBjaWVxIHRtcCwgdDEs
IHQwCisjCisKK2RlZiBtaXBzTG93ZXJSZWdpc3RlclJldXNlKGxpc3QpCisgICAgbmV3TGlzdCA9
IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5p
c19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAg
ICAgd2hlbiAiY2llcSIsICJjaW5lcSIsICJjaWEiLCAiY2lhZXEiLCAiY2liIiwgImNpYmVxIiwg
ImNpZ3QiLCAiY2lndGVxIiwgImNpbHQiLCAiY2lsdGVxIiwKKyAgICAgICAgICAgICAgICAiY3Bl
cSIsICJjcG5lcSIsICJjcGEiLCAiY3BhZXEiLCAiY3BiIiwgImNwYmVxIiwgImNwZ3QiLCAiY3Bn
dGVxIiwgImNwbHQiLCAiY3BsdGVxIiwKKyAgICAgICAgICAgICAgICAidGlvIiwgInRpcyIsICJ0
aXoiLCAidGlueiIsICJ0Ym8iLCAidGJzIiwgInRieiIsICJ0Ym56IiwgInRwbyIsICJ0cHMiLCAi
dHB6IiwgInRwbnoiLAorICAgICAgICAgICAgICAgICJjYmVxIiwgImNibmVxIiwgImNiYSIsICJj
YmFlcSIsICJjYmIiLCAiY2JiZXEiLCAiY2JndCIsICJjYmd0ZXEiLCAiY2JsdCIsICJjYmx0ZXEi
CisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgICAg
ICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXSA9PSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAg
ICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9k
ZS5vcGNvZGUsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBy
YWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBhdCAje25vZGUuY29kZU9yaWdpblN0cmlu
Z30iIHVubGVzcyBub2RlLm9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAgICAgICAgICAgICBp
ZiBub2RlLm9wZXJhbmRzWzBdID09IG5vZGUub3BlcmFuZHNbMl0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
bW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwg
W3RtcCwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAg
ICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMV0gPT0gbm9kZS5vcGVyYW5kc1syXQorICAgICAg
ICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5v
ZGUub3Bjb2RlLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBub2RlCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAg
ICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAg
ICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKK2RlZiBtaXBzTG93ZXJDb21wYXJlVGVt
cGxhdGUobGlzdCwgbm9kZSwgb3BDbXAsIG9wTW92KQorICAgIHRtcDAgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICB0bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpn
cHIpCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIs
IFtJbW1lZGlhdGUubmV3KG5pbCwgMCksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgIGxpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3BDbXAsIFtub2RlLm9wZXJhbmRzWzFd
LCBub2RlLm9wZXJhbmRzWzBdLCB0bXAwXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAxKSwgdG1wMV0pCisg
ICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcE1vdiwgW25vZGUu
b3BlcmFuZHNbMl0sIHRtcDEsIHRtcDBdKQorZW5kCisKKyMKKyMgTG93ZXJpbmcgY29tcGFyZXMg
YW5kIHRlc3RzLgorIworCitkZWYgbWlwc0xvd2VyQ29tcGFyZXMobGlzdCkKKyAgICBuZXdMaXN0
ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2Rl
LmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAg
ICAgICB3aGVuICJjaWVxIiwgImNwZXEiLCAiY2JlcSIKKyAgICAgICAgICAgICAgICBtaXBzTG93
ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwgbm9kZSwgInN1YnAiLCAibW92eiIpCisgICAgICAg
ICAgICB3aGVuICJjaW5lcSIsICJjcG5lcSIsICJjYm5lcSIKKyAgICAgICAgICAgICAgICBtaXBz
TG93ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwgbm9kZSwgInN1YnAiLCAibW92biIpCisgICAg
ICAgICAgICB3aGVuICJ0aXoiLCAidGJ6IiwgInRweiIKKyAgICAgICAgICAgICAgICBtaXBzTG93
ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwgbm9kZSwgImFuZHAiLCAibW92eiIpCisgICAgICAg
ICAgICB3aGVuICJ0aW56IiwgInRibnoiLCAidHBueiIKKyAgICAgICAgICAgICAgICBtaXBzTG93
ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwgbm9kZSwgImFuZHAiLCAibW92biIpCisgICAgICAg
ICAgICB3aGVuICJ0aW8iLCAidGJvIiwgInRwbyIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAu
bmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJhbmRwIiwgW25vZGUub3BlcmFuZHNbMV0sIG5v
ZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic2x0IiwgW25vZGUub3BlcmFuZHNbMl0sIFNwZWNpYWxS
ZWdpc3Rlci5uZXcoIiR6ZXJvIiksIHRtcF0pCisgICAgICAgICAgICB3aGVuICJ0aXMiLCAidGJz
IiwgInRwcyIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwg
OmdwcikKKyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJhbmRwIiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0p
CisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAic2x0IiwgW25vZGUub3BlcmFuZHNbMl0sIHRtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHpl
cm8iKV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMZWEgc3Vw
cG9ydC4KKyMKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiBtaXBzRW1pdExlYShkZXN0aW5hdGlv
bikKKyAgICAgICAgaWYgZGVzdGluYXRpb24gPT0gYmFzZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICJhZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICN7ZGVzdGluYXRpb24ubWlw
c09wZXJhbmR9LCAje2Jhc2UubWlwc09wZXJhbmR9LCAje29mZnNldC52YWx1ZX0iCisgICAgICAg
IGVuZAorICAgIGVuZAorZW5kCisKKyMgRklYTUU6IHdlIGNvdWxkIHN1cHBvcnQgQWJzb2x1dGVB
ZGRyZXNzIGZvciBsZWEsIGJ1dCB3ZSBkb24ndC4KKworIworIyBBZGQgUElDIGNvbXBhdGlibGUg
aGVhZGVyIGNvZGUgdG8gcHJvbG9ndWUvZW50cnkgcnV0aW5zLgorIworCitkZWYgbWlwc0FkZFBJ
Q0NvZGUobGlzdCkKKyAgICBteUxpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwg
bm9kZSB8CisgICAgICAgIG15TGlzdCA8PCBub2RlCisgICAgICAgIGlmIG5vZGUuaXNfYT8gTGFi
ZWwKKyAgICAgICAgICAgIGlmIC9fcHJvbG9ndWUkLy5tYXRjaChub2RlLm5hbWUpIHx8IC9eX2xs
aW50X2Z1bmN0aW9uXy8ubWF0Y2gobm9kZS5uYW1lKQorICAgICAgICAgICAgICAgIG15TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicGljaGRyIiwgW10pCisgICAgICAg
ICAgICBlbHNpZiAvX2xsaW50X29wX2NhdGNoLy5tYXRjaChub2RlLm5hbWUpCisgICAgICAgICAg
ICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJwaWNoZHJy
YSIsIFtdKQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgIH0KKyAgICBteUxpc3QK
K2VuZAorCisjCisjIEFjdHVhbCBsb3dlcmluZyBjb2RlIGZvbGxvd3MuCisjCisKK2NsYXNzIFNl
cXVlbmNlCisgICAgZGVmIGdldE1vZGlmaWVkTGlzdE1JUFMKKyAgICAgICAgbXlMaXN0ID0gQGxp
c3QKKworICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25seSBzZWUgaW5zdHJ1Y3Rpb25z
IGFuZCBsYWJlbHMuCisgICAgICAgIG15TGlzdC5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8
CisgICAgICAgICAgICB1bmxlc3Mgbm9kZS5pc19hPyBJbnN0cnVjdGlvbiBvcgorICAgICAgICAg
ICAgICAgICAgICBub2RlLmlzX2E/IExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUu
aXNfYT8gTG9jYWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IFNraXAK
KyAgICAgICAgICAgICAgICByYWlzZSAiVW5leHBlY3RlZCAje25vZGUuaW5zcGVjdH0gYXQgI3tu
b2RlLmNvZGVPcmlnaW59IiAKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisKKyAgICAgICAg
bXlMaXN0ID0gbWlwc0FkZFBJQ0NvZGUobXlMaXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93
ZXJCcmFuY2hPcHMobXlMaXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93ZXJTaGlmdE9wcyht
eUxpc3QpCisgICAgICAgIG15TGlzdCA9IG1pcHNMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhteUxp
c3QpCisgICAgICAgIG15TGlzdCA9IG1pcHNMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZSht
eUxpc3QpCisgICAgICAgIG15TGlzdCA9IG1pcHNMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMobXlM
aXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKG15TGlz
dCkKKyAgICAgICAgbXlMaXN0ID0gbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKG15TGlzdCkK
KyAgICAgICAgbXlMaXN0ID0gbWlwc0xvd2VyUmVnaXN0ZXJSZXVzZShteUxpc3QpCisgICAgICAg
IG15TGlzdCA9IG1pcHNMb3dlckNvbXBhcmVzKG15TGlzdCkKKyAgICAgICAgbXlMaXN0ID0gYXNz
aWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpncHIsIE1JUFNfVEVNUF9HUFJTKQor
ICAgICAgICBteUxpc3QgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKG15TGlzdCwgOmZw
ciwgTUlQU19URU1QX0ZQUlMpCisKKyAgICAgICAgcmV0dXJuIG15TGlzdAorICAgIGVuZAorZW5k
CisKK2RlZiBtaXBzT3BlcmFuZHMob3BlcmFuZHMpCisgICAgb3BlcmFuZHMubWFwe3x2fCB2Lm1p
cHNPcGVyYW5kfS5qb2luKCIsICIpCitlbmQKKworZGVmIG1pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpCisgICAgbWlwc09wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJd
KQorZW5kCisKK2RlZiBnZXRNSVBTT3Bjb2RlKG9wY29kZSwgc3VmZml4KQorCitlbmQKKworZGVm
IGVtaXRNSVBTQ29tcGFjdChvcGNvZGUsIG9wY29kZWksIG9wZXJhbmRzKQorICAgIHBvc3RmaXgg
PSAiIgorICAgIGlmIG9wY29kZSA9PSAic3ViIgorICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQiCisgICAgICAgICAgICBvcGVy
YW5kc1swXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBvcGVy
YW5kc1swXS52YWx1ZSkKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRl
CisgICAgICAgICAgICBvcGNvZGUgPSAiYWRkIgorICAgICAgICAgICAgb3BlcmFuZHNbMV0gPSBJ
bW1lZGlhdGUubmV3KG9wZXJhbmRzWzFdLmNvZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMV0udmFs
dWUpCisgICAgICAgIGVuZAorICAgICAgICBwb3N0Zml4ID0gInUiCisgICAgZWxzaWYgb3Bjb2Rl
ID09ICJhZGQiCisgICAgICAgIHBvc3RmaXggPSAidSIKKyAgICBlbmQKKyAgICBpZiBvcGVyYW5k
cy5zaXplID09IDMKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1
ZX0iCisgICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAg
ICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAje29wZXJhbmRzWzJdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0udmFsdWV9Igor
ICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0g
I3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UK
KyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/
IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNt
LnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAg
ICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTU2hpZnRDb21wYWN0KG9wY29k
ZSwgb3BlcmFuZHMpCisgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIGlmIChvcGVy
YW5kc1sxXS5pc19hPyBJbW1lZGlhdGUpCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
fSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0udmFsdWV9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1
dHMgIiN7b3Bjb2RlfXYgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgor
ICAgICAgICBpZiBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICRhc20ucHV0cyAi
I3tvcGNvZGV9diAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAg
ICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFMob3Bjb2RlLCBvcGVyYW5kcykKKyAg
ICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tt
aXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgZWxzZQorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTRG91
YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgImMu
I3ticmFuY2hPcGNvZGV9LmQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICBp
ZiAoIW5lZykKKyAgICAgICAgJGFzbS5wdXRzICJiYzF0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJiYzFmICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisgICAgZGVmIGxvd2VyTUlQ
UworICAgICAgICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmluZworICAgICAgICBjYXNlIG9w
Y29kZQorICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiCisgICAgICAgICAgICBp
ZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAg
ICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAgICAg
ICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMl0ucmVnaXN0ZXI/CisgICAgICAgICAgICAg
ICAgaWYgb3BlcmFuZHNbMF0udmFsdWUgPT0gMCAjYW5kIHN1ZmZpeC5lbXB0eT8KKyAgICAgICAg
ICAgICAgICAgICAgdW5sZXNzIG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCisgICAgICAgICAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
I3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIGVsc2lmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/Cisg
ICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAg
ICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImFkZHUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1t
ZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHVubGVzcyBJbW1lZGlhdGUubmV3KG5pbCwgMCkg
PT0gb3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9
IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFu
ZGkiLCAiYW5kcCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgiYW5kIiwgImFuZCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJvcmkiLCAib3JwIgorICAgICAgICAgICAgZW1pdE1JUFND
b21wYWN0KCJvciIsICJvcnIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAib3JpcyIKKyAgICAg
ICAgICAgIGVtaXRNSVBTQ29tcGFjdCgib3IiLCAib3JycyIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJ4b3JpIiwgInhvcnAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoInhvciIsICJl
b3IiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibHNoaWZ0aSIsICJsc2hpZnRwIgorICAgICAg
ICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNsbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJyc2hpZnRpIiwgInJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgi
c3JhIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInVyc2hpZnRpIiwgInVyc2hpZnRwIgorICAg
ICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNybCIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJtdWxpIiwgIm11bHAiCisgICAgICAgICAgICBlbWl0TUlQUygibXVsIiwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gInN1YmkiLCAic3VicCIsICJzdWJpcyIKKyAgICAgICAgICAgIGVtaXRN
SVBTQ29tcGFjdCgic3ViIiwgInN1YnMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibmVnaSIs
ICJuZWdwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJuZWd1ICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibm90aSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibm9yICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgJHplcm8iCisgICAgICAgIHdoZW4gImxvYWRpIiwg
ImxvYWRpcyIsICJsb2FkcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYnUgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRicyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibGIgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gInN0b3JlYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2IgI3ttaXBzT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxodSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9h
ZGhzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsaCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
aHYgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGQiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkYzEgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2RjMSAje21p
cHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJhZGRkIgorICAgICAgICAgICAg
ZW1pdE1JUFMoImFkZC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAg
ICAgICBlbWl0TUlQUygiZGl2LmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3ViZCIKKyAg
ICAgICAgICAgIGVtaXRNSVBTKCJzdWIuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJtdWxk
IgorICAgICAgICAgICAgZW1pdE1JUFMoIm11bC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
InNxcnRkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzcXJ0LmQgI3ttaXBzRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICByYWlzZSAi
aW52YWxpZCBvcHMgb2YgI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVu
bGVzcyBvcGVyYW5kc1sxXS5pc19hPyBGUFJlZ2lzdGVySUQgYW5kIG9wZXJhbmRzWzBdLnJlZ2lz
dGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Y3Z0LmQudyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3Bl
cmFuZH0iCisgICAgICAgIHdoZW4gImJkZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJy
YW5jaCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxIgorICAgICAg
ICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZGd0IgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIHRy
dWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXEiCisgICAgICAgICAgICBlbWl0TUlQ
U0RvdWJsZUJyYW5jaCgidWx0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHQi
CisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0IiwgZmFsc2UsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5j
aCgib2xlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGVxdW4iCisgICAgICAg
ICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZG5lcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3R1biIKKyAgICAgICAgICAgIGVtaXRN
SVBTRG91YmxlQnJhbmNoKCJvbGUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRn
dGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0IiwgdHJ1ZSwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gImJkbHR1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJ1bHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcXVuIgor
ICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIGZhbHNlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYnRkMmkiCisgICAgICAgICAgICAjIEZJWE1FOiBtYXkgYmUgYSBnb29k
IGlkZWEgdG8ganVzdCBnZXQgcmlkIG9mIHRoaXMgaW5zdHJ1Y3Rpb24sIHNpbmNlIHRoZSBpbnRl
cnByZXRlcgorICAgICAgICAgICAgIyBjdXJyZW50bHkgZG9lcyBub3QgdXNlIGl0LgorICAgICAg
ICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29k
ZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInRkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2
dC53LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgd2hl
biAiYmNkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC53LmQgI3tNSVBTX1NDUkFUQ0hf
RlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje01JUFNfU0NS
QVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LmQudyAj
e01JUFNfU0NSQVRDSF9GUFIubWlwc09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1Np
bmdsZUxvfSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIHRydWUsIFtN
SVBTX1NDUkFUQ0hfRlBSLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl1dKQorICAgICAgICAgICAg
JGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICR6ZXJvLCAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAibW92ZHoiCisgICAgICAgICAgICAjIEZJ
WE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KKyAgICAgICAgICAgIHJhaXNl
ICJNSVBTIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59Igor
ICAgICAgICB3aGVuICJwb3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgImx3ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRz
cCwgJHNwLCA0IgorICAgICAgICB3aGVuICJwdXNoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGRpdSAkc3AsICRzcCwgLTQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgIHdoZW4gIm1vdmUiLCAic3hpMnAiLCAi
enhpMnAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAg
ICAgICAgICAgICBtaXBzTW92ZUltbWVkaWF0ZShvcGVyYW5kc1swXS52YWx1ZSwgb3BlcmFuZHNb
MV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICN7
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAg
IHdoZW4gIm5vcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICB3aGVuICJi
aWVxIiwgImJwZXEiLCAiYmJlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7bWlwc09w
ZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICB3aGVuICJiaW5lcSIsICJicG5lcSIsICJiYm5lcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Ym5lICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgICAgICB3aGVuICJiaWd0IiwgImJwZ3QiLCAiYmJndCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiYmd0ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNb
Ml0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWd0ZXEiLCAiYnBndGVxIiwgImJiZ3RlcSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmdlICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFd
KX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0IiwgImJwbHQi
LCAiYmJsdCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmx0ICN7bWlwc09wZXJhbmRzKG9wZXJh
bmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0
ZXEiLCAiYnBsdGVxIiwgImJibHRlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmxlICN7bWlw
c09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAg
ICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgImogI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqciAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjYWxsIgorICAgICAg
ICAgICAgaWYgb3BlcmFuZHNbMF0ubGFiZWw/CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJq
YWwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJqYWxyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIHdoZW4gImJyZWFrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
cmVhayIKKyAgICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJqciAkcmEi
CisgICAgICAgIHdoZW4gImNpYSIsICJjcGEiLCAiY2JhIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpYWVxIiwg
ImNwYWVxIiwgImNiYWVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNb
Ml0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpYiIsICJjcGIiLCAiY2JiIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgIHdoZW4gImNpYmVxIiwgImNwYmVxIiwgImNiYmVxIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpZ3Qi
LCAiY3BndCIsICJjYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lndGVxIiwgImNwZ3RlcSIsICJjYmd0ZXEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAx
IgorICAgICAgICB3aGVuICJjaWx0IiwgImNwbHQiLCAiY2JsdCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpbHRl
cSIsICJjcGx0ZXEiLCAiY2JsdGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVy
YW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJh
bmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAicGVlayIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
dmFsdWUgKiA0fSgkc3ApIgorICAgICAgICB3aGVuICJwb2tlIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzdyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAq
IDR9KCRzcCkiCisgICAgICAgIHdoZW4gImZpaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJt
dGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNTaW5nbGVM
b30iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAiZmQyaWkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAj
e29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzU2luZ2xlSGl9Igor
ICAgICAgICB3aGVuICJibyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmd0ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sy
XS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
bHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYnoiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJi
bnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJuZSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAiCisgICAgICAgICAgICBvcGVyYW5kc1swXS5taXBz
RW1pdExlYShvcGVyYW5kc1sxXSkKKyAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICAgICAg
cmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3Bl
Y3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtdWx0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZsbyAj
e29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZoaSAj
e29wZXJhbmRzWzNdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibW92eiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibW92eiAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3
aGVuICJtb3ZuIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZuICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNsdCIsICJzbHRiIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzbHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0dSIs
ICJzbHR1YiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJwaWNoZHIiCisgICAgICAgICAgICAkYXNtLnB1dFN0cigi
T0ZGTElORV9BU01fQ1BMT0FEKCQyNSkiKQorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICRz
NCwgJGdwIgorICAgICAgICB3aGVuICJwaWNoZHJyYSIKKyAgICAgICAgICAgICRhc20ucHV0U3Ry
KCJPRkZMSU5FX0FTTV9DUExPQUQoJDMxKSIpCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUg
JHM0LCAkZ3AiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bj
b2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBl
bmQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCBmYzlhZTk0Li5iZTkyZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTEwLTE4ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAg
ICAgTUlQUyBMTEludCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0xMC0xNyAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVwIFZlY3Rvci5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aAppbmRleCAzYzI2M2M1Li5hNWRiNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTkxMyw3ICs5MTMsNyBA
QAogICAgICYmIEVOQUJMRShKSVQpIFwKICAgICAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkp
IFwKICAgICAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEdU
SykgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhMSU5VWCkpKSBcCi0gICAgJiYgKENQVShYODYpIHx8
IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSkKKyAgICAmJiAoQ1BVKFg4NikgfHwgQ1BV
KFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkKICNkZWZpbmUgRU5BQkxF
X0xMSU5UIDEKICNlbmRpZgogCg==
</data>
<flag name="commit-queue"
          id="182663"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169392</attachid>
            <date>2012-10-18 05:03:43 -0700</date>
            <delta_ts>2012-10-27 01:42:20 -0700</delta_ts>
            <desc>LLInt implementation for MIPS.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>64328</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM1NzRhYTAuLmM5NDEzODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEwLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6IFBJQyBmaXg6IGp1bXAgdmlhICR0OSByZWcuCisgICAgICAgICogZGZnL0RGR09wZXJhdGlv
bnMuY3BwOiBQSUMgZml4OiB1c2UgJHQ5IHJlZy4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICog
aml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpKSVRUaHVua3MpOiBB
ZGRpdGlub25hbCAkcyMgcmVnaXN0ZXJzIHVzZS5nZSBhZGRlZC4KKyAgICAgICAgKEpTQyk6Cisg
ICAgICAgICogaml0L0pJVFN0dWJzLmg6IEFkZGl0aW5vbmFsICRzIyByZWdpc3RlcnMgdXNlLmdl
IGFkZGVkLgorICAgICAgICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRP
ZmZsaW5lQXNtQ29uZmlnLmg6IE1JUFMgYXJjaC4gYWRkZWQuCisgICAgICAgICogbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc206IE1JUFMgYXJjaC4gYWRkZWQuCisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbTogTUlQUyBhcmNoLiBhZGRlZC4KKyAgICAgICAg
KiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOiBNSVBTIGFyY2guIGFkZGVkLgorICAgICAgICAqIG9m
ZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOiBNSVBTIGFyY2guIGFkZGVkLgorICAgICAgICAqIG9m
ZmxpbmVhc20vbWlwcy5yYjogQWRkZWQuCisKIDIwMTItMTAtMTcgIFpvbHRhbiBIb3J2YXRoICA8
em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBKU0hlYXAgbWVtb3J5IG1l
YXN1cmVtZW50IG9mIHRoZSBQYWdlTG9hZCBwZXJmb3JtYWNldGVzdHMgc2luY2UgaXQgY3JlYXRl
cyBib2d1cyBKU0dsb2JhbERhdGFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBmYzZmOWY0Li4yOWRmMjU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJN
SVBTLmgKQEAgLTEzMDQsNyArMTMwNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQganVtcChSZWdp
c3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmpyKHRhcmdldCk7Cisg
ICAgICAgIG1vdmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmpyKE1JUFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBkYjczNmZlLi4zNjUyODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKQEAgLTQ3LDYgKzQ3LDE2IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaWYg
Q1BVKE1JUFMpICYmIFdURl9NSVBTX1BJQworI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1
bmN0aW9uKSBcCisgICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCisgICAgICAgICIuY3Bs
b2FkICQyNSIgIlxuIiBcCisgICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAorICAgICAgICAi
bGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgorI2Vsc2UKKyNkZWZpbmUg
TE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgorI2VuZGlmCisKICNpZiBFTkFC
TEUoREZHX0pJVCkKIAogI2lmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4Nl82NCkKQEAgLTIwMSw2
ICsyMTEsNTIgQEAKICAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRo
UmV0dXJuQWRkcmVzcyIgIlxuIiBcCiAgICAgKTsKIAorI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBD
UFUoTUlQUykKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1Nf
RShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0
aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAg
TE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAg
ICAgIm1vdmUgJGExLCAkcmEiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShm
dW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVmaW5lIEZV
TkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FQ0koZnVuY3Rpb24pIFwKKyAgICBh
c20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1
bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lN
Qk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDko
ZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJtb3ZlICRhMywgJHJhIiAi
XG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJu
QWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhf
UkVUVVJOX0FERFJFU1NfRUpJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAi
XG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAg
SElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24p
ICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJu
QWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAyMCgkc3ApIiAiXG4iIFwKKyAgICAgICAgImIg
IiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisg
ICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpD
SShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0
aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAg
TE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAg
ICAgInN3ICRyYSwgMjQoJHNwKSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNF
KGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisKICNlbmRpZgog
CiAjZGVmaW5lIFBfRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0UoZnVuY3Rp
b24pIFwKQEAgLTE1MDAsNiArMTU1NiwxNyBAQCBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgIm1vdiByMCwgcjUiICJcbiIKICAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsK
KyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKE1JUFMpCithc20oCisiLnRleHQiICJcbiIKKyIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK0hJREVf
U1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9TVFJJTkcoZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhv
c3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQorICAgICJsdyAkczAsIC00MCgkczApIiAi
XG4iCisgICAgIm1vdmUgJGEwLCAkczAiICJcbiIKKyAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgorKTsKICNlbmRpZgogCiBl
eHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggZjFmMmY0Yy4uY2UzODA1YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTI4MCwxMSArMjgwLDEzIEBA
IGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VUICAgICAgICAgNjQKICNk
ZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAgICAgIDY4CiAjZGVmaW5lIFBSRVNFUlZFRF9T
Ml9PRkZTRVQgICAgICAgICA3MgotI2RlZmluZSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUIDc2Ci0jZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4MAotI2RlZmluZSBS
RUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgODQKLSNkZWZpbmUgR0xPQkFMX0RBVEFfT0ZGU0VU
ICAgICAgICAgMTAwCi0jZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAgICAgIDEwNAorI2Rl
ZmluZSBQUkVTRVJWRURfUzNfT0ZGU0VUICAgICAgICAgNzYKKyNkZWZpbmUgUFJFU0VSVkVEX1M0
X09GRlNFVCAgICAgICAgIDgwCisjZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZT
RVQgODQKKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDg4CisjZGVmaW5lIFJF
R0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA5MgorI2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQg
ICAgICAgICAxMDgKKyNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAgICAgMTEyCiAjZWxp
ZiBDUFUoU0g0KQogI2RlZmluZSBTWU1CT0xfU1RSSU5HKG5hbWUpICNuYW1lCiAvKiBjb2RlIChy
NCksIEpTU3RhY2sqIChyNSksIENhbGxGcmFtZSogKHI2KSwgdm9pZCogdW51c2VkMSAocjcpLCB2
b2lkKiB1bnVzZWQyKHNwKSwgSlNHbG9iYWxEYXRhIChzcCkqLwpAQCAtMzE4LDYgKzMyMCw5IEBA
IFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAiYWRkICMxMiwgcjE1
IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVF
bmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAK
IGFzbSB2b2xhdGlsZSAoCkBAIC00NTEsNiArNDU2LDggQEAgYXNtICgKIFNZTUJPTF9TVFJJTkco
Y3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwtIiBTVFJJTkdJWkVf
VkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAg
ICAic3cgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIo
JDI5KSIgIlxuIgorICAgICJzdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxOCwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAic3cgICAgJDE3LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJzdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigk
MjkpIiAiXG4iCkBAIC00NjAsMTkgKzQ2NywyNCBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xp
bmUpICI6IiAiXG4iCiAgICAgIm1vdmUgICQxNiwkNiAgICAgICAjIHNldCBjYWxsRnJhbWVSZWdp
c3RlciIgIlxuIgogICAgICJsaSAgICAkMTcsNTEyICAgICAgIyBzZXQgdGltZW91dENoZWNrUmVn
aXN0ZXIiICJcbiIKICAgICAibW92ZSAgJDI1LCQ0ICAgICAgICMgbW92ZSBleGVjdXRhYmxlQWRk
cmVzcyB0byB0OSIgIlxuIgotICAgICJzdyAgICAkNSwiIFNUUklOR0laRV9WQUxVRV9PRihSRUdJ
U1RFUl9GSUxFX09GRlNFVCkgIigkMjkpICMgc3RvcmUgSlNTdGFjayB0byBjdXJyZW50IHN0YWNr
IiAiXG4iCisgICAgInN3ICAgICQ1LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFJFR0lTVEVSX0ZJTEVf
T0ZGU0VUKSAiKCQyOSkgIyBzdG9yZSBzdGFjayB0byBjdXJyZW50IHN0YWNrIiAiXG4iCiAgICAg
Imx3ICAgICQ5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCArIDIwKSAiKCQyOSkg
ICAgIyBsb2FkIGdsb2JhbERhdGEgZnJvbSBwcmV2aW91cyBzdGFjayIgIlxuIgogICAgICJqYWxy
ICAkMjUiICJcbiIKICAgICAic3cgICAgJDksIiBTVFJJTkdJWkVfVkFMVUVfT0YoR0xPQkFMX0RB
VEFfT0ZGU0VUKSAiKCQyOSkgICAjIHN0b3JlIGdsb2JhbERhdGEgdG8gY3VycmVudCBzdGFjayIg
IlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09G
RlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAg
ICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZG
U0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAk
MzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19M
RU5HVEgpICJcbiIKICIuc2V0IHJlb3JkZXIiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCiAiLmVu
ZCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9T
VFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGluZUVu
ZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogKTsKIAog
YXNtICgKQEAgLTQ4NSw4ICs0OTcsOCBAQCBhc20gKAogIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0
aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9s
aW5lKSAiOiIgIlxuIgogI2lmIFdURl9NSVBTX1BJQwotICAgICJsdyAgICAkMjgsIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkpIiAiXG4iCiAiLnNldCBtYWNy
byIgIlxuIgorIi5jcGxvYWQgJDMxIiAiXG4iCiAgICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJ
TkcoY3RpX3ZtX3Rocm93KSAiXG4iCiAiLnNldCBub21hY3JvIiAiXG4iCiAgICAgImJhbCAiIFNZ
TUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCkBAIC00OTgsNiArNTEwLDggQEAgU1lNQk9M
X1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAibHcgICAgJDE2LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMjAsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAg
Imx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAgICAgImFkZGl1ICQy
OSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCkBAIC01MTgsNiAr
NTMyLDggQEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIgIlxuIgogICAg
ICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMTksIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAg
Imx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZGU0VUKSAiKCQy
OSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9S
RVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAkMzEiICJcbiIK
ICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJc
biIKQEAgLTgxNSw2ICs4MzEsOCBAQCBKSVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEpCiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgcHJlc2VydmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOwogICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVT
RVJWRURfUzFfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzMpID09
IFBSRVNFUlZFRF9TM19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFM0KSA9PSBQUkVTRVJWRURfUzRfT0ZGU0VUKTsKICAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
ZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKICAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFk
ZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJTEVf
T0ZGU0VUKTsKQEAgLTExMDUsOSArMTEyMyw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRp
YyBUIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbChKSVRTdGFja0ZyYW1lJiBqaXRTdGFja0ZyCiAg
ICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAg
Ii5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NU
UklORyhjdGlfIyNvcCkgIjoiICJcbiIgXAotICAgICAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIiBcCi0gICAgICAgICJz
dyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KSAiKCQyOSkiICJcbiIgXAogICAgICAgICAiLnNldCBtYWNybyIgIlxuIiBcCisgICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAogICAgICAgICAi
bGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKICAg
ICAgICAgIi5zZXQgbm9tYWNybyIgIlxuIiBcCiAgICAgICAgICIucmVsb2MgMWYsUl9NSVBTX0pB
TFIsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IDRhM2IyNTIuLjg3ZGJiMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmgKQEAgLTIyMyw2ICsyMjMsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzA7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMx
OwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMjsKKyAgICAgICAgdm9pZCogcHJlc2VydmVkUzM7
CisgICAgICAgIHZvaWQqIHByZXNlcnZlZFM0OwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1
cm5BZGRyZXNzOwogCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFz
bUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oCmluZGV4IGRhMmQ1MTAuLjE1NzUyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTM4LDYgKzM4LDcgQEAK
ICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjcgMAogI2RlZmluZSBPRkZMSU5FX0FTTV9YODZfNjQg
MAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12N3MgMAorI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBT
IDAKIAogI2Vsc2UgLy8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAKQEAgLTY3LDYgKzY4LDEyIEBA
CiAjZGVmaW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZW5kaWYKIAorI2lmIENQVShNSVBTKQor
I2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX01J
UFMgMAorI2VuZGlmCisKICNlbmRpZiAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCkBAIC0xMTEsNCArMTE4LDE3IEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX1ZB
TFVFX1BST0ZJTEVSIDAKICNlbmRpZgogCisjaWYgQ1BVKE1JUFMpCisjaWZkZWYgV1RGX01JUFNf
UElDCisjZGVmaW5lIFMoeCkgI3gKKyNkZWZpbmUgU1goeCkgUyh4KQorI2RlZmluZSBPRkZMSU5F
X0FTTV9DUExPQUQocmVnKSBcCisgICAgIi5zZXQgbm9yZW9yZGVyXG4iIFwKKyAgICAiLmNwbG9h
ZCAiIFNYKHJlZykgIlxuIiBcCisgICAgIi5zZXQgcmVvcmRlclxuIgorI2Vsc2UKKyNkZWZpbmUg
T0ZGTElORV9BU01fQ1BMT0FEKHJlZykKKyNlbmRpZgorI2VuZGlmCisKICNlbmRpZiAvLyBMTElu
dE9mZmxpbmVBc21Db25maWdfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGFkNTA5ZTAuLmViYzYwMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
QEAgLTE0NCw2ICsxNDQsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
ZGVzdGluYXRpb25SZWdpc3RlcikKICAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3Rl
cgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0
ZXIKKyAgICBlbHNpZiBNSVBTCisgICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIK
ICAgICBlbHNlCiAgICAgICAgIGVycm9yCiAgICAgZW5kCkBAIC0xNTcsNiArMTU5LDggQEAgbWFj
cm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIpCiAgICAg
ICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAg
ICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIHNv
dXJjZVJlZ2lzdGVyLCBscgogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KaW5kZXggZjBkNDVlYi4uOThiYTM1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEx
Myw2ICsxMTMsMTAgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQogICAgICAg
ICBwb2tlIGFyZzEsIDAKICAgICAgICAgcG9rZSBhcmcyLCAxCiAgICAgICAgIGNhbGwgZnVuY3Rp
b24KKyAgICBlbHNpZiBNSVBTCisgICAgICAgIG1vdmUgYXJnMSwgYTAKKyAgICAgICAgbW92ZSBh
cmcyLCBhMQorICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgQ19MT09QCiAgICAgICAg
IGNsb29wQ2FsbFNsb3dQYXRoIGZ1bmN0aW9uLCBhcmcxLCBhcmcyCiAgICAgZWxzZQpAQCAtMTM0
LDYgKzEzOCwxMiBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFy
ZzQpCiAgICAgICAgIHBva2UgYXJnMywgMgogICAgICAgICBwb2tlIGFyZzQsIDMKICAgICAgICAg
Y2FsbCBmdW5jdGlvbgorICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAg
ICAgICBtb3ZlIGFyZzIsIGExCisgICAgICAgIG1vdmUgYXJnMywgYTIKKyAgICAgICAgbW92ZSBh
cmc0LCBhMworICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYgQ19MT09QCiAgICAgICAg
IGVycm9yCiAgICAgZWxzZQpAQCAtMTg4MCw2ICsxODkwLDIwIEBAIG1hY3JvIG5hdGl2ZUNhbGxU
cmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgICAgICBjYWxsIGV4ZWN1
dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQogICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybih0MykKICAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtz
cF0sIHQzCisgICAgZWxzaWYgTUlQUworICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9i
YWxEYXRhW3NwXSwgdDMKKyAgICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxs
RnJhbWVbdDNdCisgICAgICAgIG1vdmUgdDAsIHQyCisgICAgICAgIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbCh0MykKKyAgICAgICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCisgICAg
ICAgIG1vdmUgY2ZyLCB0MAorICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nm
cl0sIHQxCisgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCisg
ICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAgICBtb3ZlIHQwLCBhMAorICAgICAgICBjYWxsIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVz
c0JlZm9yZVJldHVybih0MykKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0
YVtzcF0sIHQzCiAgICAgZWxzaWYgQ19MT09QCiAgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6
Omdsb2JhbERhdGFbc3BdLCB0MwogICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRv
cENhbGxGcmFtZVt0M10KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2JhY2tlbmRzLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2Vu
ZHMucmIKaW5kZXggNzhlNTQ1Ny4uZWY5MzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYmFja2VuZHMucmIKQEAgLTI1LDYgKzI1LDcgQEAgcmVxdWlyZSAiY29uZmln
IgogcmVxdWlyZSAiYXJtdjciCiByZXF1aXJlICJhc3QiCiByZXF1aXJlICJ4ODYiCityZXF1aXJl
ICJtaXBzIgogcmVxdWlyZSAiY2xvb3AiCiAKIEJBQ0tFTkRTID0KQEAgLTMyLDYgKzMzLDcgQEAg
QkFDS0VORFMgPQogICAgICAiWDg2IiwKICAgICAgIlg4Nl82NCIsCiAgICAgICJBUk12NyIsCisg
ICAgICJNSVBTIiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTQ1LDYgKzQ3LDcgQEAgV09S
S0lOR19CQUNLRU5EUyA9CiAgICAgICJYODYiLAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3
IiwKKyAgICAgIk1JUFMiLAogICAgICAiQ19MT09QIgogICAgIF0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCmluZGV4IGRkYjFiYjkuLjY5
MWRkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIKQEAgLTIyMSw2ICsyMjEsMTYgQEAgQVJNdjdfSU5TVFJVQ1RJT05TID0KICAgICAg
Im9yaXMiCiAgICAgXQogCitNSVBTX0lOU1RSVUNUSU9OUyA9CisgICAgWworICAgICJtb3Z6IiwK
KyAgICAibW92biIsCisgICAgInNsdCIsCisgICAgInNsdHUiLAorICAgICJwaWNoZHIiLAorICAg
ICJwaWNoZHJyYSIKKyAgICBdCisKIENYWF9JTlNUUlVDVElPTlMgPQogICAgIFsKICAgICAgImNs
b29wQ3Jhc2giLCAgICAgICAgICAgIyBubyBvcGVyYW5kcwpAQCAtMjM3LDcgKzI0Nyw3IEBAIENY
WF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAgICAgICAjIG5vIG9wZXJh
bmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5T
VFJVQ1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJV
Q1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lO
U1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUwogCiBJTlNU
UlVDVElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsgSU5TVFJVQ1RJT05TLmpvaW4o
Jyl8KCcpICsgJykpXFxaJykKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vbWlwcy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMu
cmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY2YTYzYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIKQEAgLTAs
MCArMSwxMTk3IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1J
UFMgVEVDSE5PTE9HSUVTLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgTUlQ
UyBURUNITk9MT0dJRVMsIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCityZXF1aXJlICJhc3QiCityZXF1aXJlICJvcHQiCisKK2NsYXNzIEFzc2VtYmxlcgor
ICAgIGRlZiBwdXRTdHIoc3RyKQorICAgICAgICBAb3V0cC5wdXRzIHN0cgorICAgIGVuZAorZW5k
CisKK2NsYXNzIE5vZGUKKyAgICBkZWYgbWlwc1NpbmdsZUhpCisgICAgICAgIGRvdWJsZU9wZXJh
bmQgPSBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2Rv
dWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXlwkZi8KKyAgICAgICAgIiRm
IiArICgkfi5wb3N0X21hdGNoLnRvX2kgKyAxKS50b19zCisgICAgZW5kCisgICAgZGVmIG1pcHNT
aW5nbGVMbworICAgICAgICBkb3VibGVPcGVyYW5kID0gbWlwc09wZXJhbmQKKyAgICAgICAgcmFp
c2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9w
ZXJhbmQgPX4gL15cJGYvCisgICAgICAgIGRvdWJsZU9wZXJhbmQKKyAgICBlbmQKK2VuZAorCitj
bGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIG1pcHNPcGVyYW5kCisg
ICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAgICBkZWYgZHVtcAorICAgICAgICBAbmFtZQorICAg
IGVuZAorCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICB0cnVlCisgICAgZW5kCitlbmQKKwor
TUlQU19URU1QX0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ1IiksIFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiR0NiIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDciKSwKKyAgICAgICAgICAg
ICAgICAgICAgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ4IildCitNSVBTX1RFTVBfRlBSUyA9IFtT
cGVjaWFsUmVnaXN0ZXIubmV3KCIkZjE2IildCitNSVBTX1NDUkFUQ0hfRlBSID0gU3BlY2lhbFJl
Z2lzdGVyLm5ldygiJGYxOCIpCisKK2RlZiBtaXBzTW92ZUltbWVkaWF0ZSh2YWx1ZSwgcmVnaXN0
ZXIpCisgICAgaWYgdmFsdWUgPT0gMAorICAgICAgICAkYXNtLnB1dHMgImFkZCAje3JlZ2lzdGVy
Lm1pcHNPcGVyYW5kfSwgJHplcm8sICR6ZXJvIgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRz
ICJsaSAje3JlZ2lzdGVyLm1pcHNPcGVyYW5kfSwgI3t2YWx1ZX0iCisgICAgZW5kCitlbmQKKwor
CitjbGFzcyBSZWdpc3RlcklECisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2UgbmFt
ZQorICAgICAgICB3aGVuICJhMCIKKyAgICAgICAgICAgICIkYTAiCisgICAgICAgIHdoZW4gImEx
IgorICAgICAgICAgICAgIiRhMSIKKyAgICAgICAgd2hlbiAicjAiLCAidDAiCisgICAgICAgICAg
ICAiJHYwIgorICAgICAgICB3aGVuICJyMSIsICJ0MSIKKyAgICAgICAgICAgICIkdjEiCisgICAg
ICAgIHdoZW4gInQyIgorICAgICAgICAgICAgIiR0MiIKKyAgICAgICAgd2hlbiAidDMiCisgICAg
ICAgICAgICAiJHMzIgorICAgICAgICB3aGVuICJ0NCIgICAjIFBDIHJlZyBpbiBsbGludAorICAg
ICAgICAgICAgIiRzMiIKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAiJHQ1IgorICAg
ICAgICB3aGVuICJ0NiIKKyAgICAgICAgICAgICIkdDYiCisgICAgICAgIHdoZW4gInQ3IgorICAg
ICAgICAgICAgIiR0NyIKKyAgICAgICAgd2hlbiAidDgiCisgICAgICAgICAgICAiJHQ4IgorICAg
ICAgICB3aGVuICJjZnIiCisgICAgICAgICAgICAiJHMwIgorICAgICAgICB3aGVuICJsciIKKyAg
ICAgICAgICAgICIkcmEiCisgICAgICAgIHdoZW4gInNwIgorICAgICAgICAgICAgIiRzcCIKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBN
SVBTIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisK
K2NsYXNzIEZQUmVnaXN0ZXJJRAorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNlIG5h
bWUKKyAgICAgICAgd2hlbiAiZnQwIiwgImZyIgorICAgICAgICAgICAgIiRmMCIKKyAgICAgICAg
d2hlbiAiZnQxIgorICAgICAgICAgICAgIiRmMiIKKyAgICAgICAgd2hlbiAiZnQyIgorICAgICAg
ICAgICAgIiRmNCIKKyAgICAgICAgd2hlbiAiZnQzIgorICAgICAgICAgICAgIiRmNiIKKyAgICAg
ICAgd2hlbiAiZnQ0IgorICAgICAgICAgICAgIiRmOCIKKyAgICAgICAgd2hlbiAiZnQ1IgorICAg
ICAgICAgICAgIiRmMTAiCisgICAgICAgIHdoZW4gImZhMCIKKyAgICAgICAgICAgICIkZjEyIgor
ICAgICAgICB3aGVuICJmYTEiCisgICAgICAgICAgICAiJGYxNCIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0
ZQorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiSW52YWxpZCBpbW1lZGlhdGUg
I3t2YWx1ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgdmFsdWUgPCAtMHg3ZmZmIG9yIHZh
bHVlID4gMHg3ZmZmCisgICAgICAgICIje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBB
ZGRyZXNzCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGF0
ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIG9mZnNldC52YWx1ZSA8IC0weDdmZmYgb3Igb2Zmc2V0
LnZhbHVlID4gMHg3ZmZmCisgICAgICAgICIje29mZnNldC52YWx1ZX0oI3tiYXNlLm1pcHNPcGVy
YW5kfSkiCisgICAgZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIG1p
cHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJVbmNvbnZlcnRlZCBhYnNvbHV0ZSBhZGRyZXNzIGF0
ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCitlbmQKKworIworIyBMb3dlciAnYW5kJyBt
YXNrZWQgYnJhbmNoZXMKKyMKKworZGVmIGxvd2VyTUlQU0NvbmRCcmFuY2gobGlzdCwgY29uZE9w
LCBub2RlKQorICAgIGlmIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGxpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZE9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9kZS5v
cGVyYW5kc1swXSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1st
MV1dKQorICAgIGVsc2lmIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIHRtcCA9IFRt
cC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
bmRpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0s
IG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZE9w
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIu
bmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgZWxzZQorICAgICAgICByYWlz
ZSAiRXhwZWN0ZWQgMiBvciAzIG9wZXJhbmRzIGJ1dCBnb3QgI3tub2RlLm9wZXJhbmRzLnNpemV9
IGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCisjCisjIExvd2Vy
aW5nIG9mIGJyYW5jaCBvcHMuIEZvciBleGFtcGxlOgorIworIyBiYWRkaXogZm9vLCBiYXIsIGJh
egorIworIyB3aWxsIGJlY29tZToKKyMKKyMgYWRkaSBmb28sIGJhcgorIyBieiBiYXoKKyMKKwor
ZGVmIG1pcHNMb3dlckJyYW5jaE9wcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3Qu
ZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rp
b24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gL15iKGFk
ZGl8c3ViaXxvcml8YWRkcCkvCisgICAgICAgICAgICAgICAgb3AgPSAkMQorICAgICAgICAgICAg
ICAgIGJjID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIGJyYW5jaCA9ICJiIiArIGJj
IAorCisgICAgICAgICAgICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgIHdoZW4gImFkZGki
LCAiYWRkcCIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAiYWRkaSIKKyAgICAgICAgICAgICAg
ICB3aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJzdWJpIgorICAgICAgICAg
ICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAib3JpIgorICAgICAg
ICAgICAgICAgIGVuZAorCisgICAgICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdpc3Rlci5u
ZXcoIiR6ZXJvIikKKyAgICAgICAgICAgICAgICBpZiBiYyA9PSAibyIKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgICAgICB3aGVuICJhZGRpIgorICAgICAgICAg
ICAgICAgICAgICAgICAgIyAgYWRkdSAkczAsICRzMSwgJHMyCisgICAgICAgICAgICAgICAgICAg
ICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYmx0
ICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3Ig
JHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYmx0ICR0MCwgJHplcm8s
IG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG92ZXJmbG93OgorICAgICAg
ICAgICAgICAgICAgICAgICAgIyByZXN0IG9mIHByb2dyYW0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwg
bm9kZS5vcGVyYW5kc1sxXSwgdHJdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRz
WzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHpl
cm8sIG5vRmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2RlLm9wZXJhbmRzWzBd
LCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vZGUub3BlcmFuZHNbMl1d
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
Im1vdmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICB3aGVu
ICJzdWJpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgc3VidSAkczAsICRzMSwgJHMyCisg
ICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAgICAg
ICAgICAgICAgICAgIyAgYmdlICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAgICAg
ICAgICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAgICAg
IyAgYmx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5v
IG92ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAg
ICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5k
c1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdHJdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9w
ZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlndGVxIiwg
W3RtcCwgemVybywgbm9GbG93UmVmXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbdHIsIG5vZGUub3Bl
cmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywgbm9kZS5vcGVy
YW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vRmxvdworICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAibW92ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAgICAgICAg
ICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgbm8gb3Z3ZXJmbG93IGF0
IG9yaQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4xXSkKKyAgICAgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wZXJhbmRzWzFdLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFk
ZHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZHAiLCBbYWRkciwgdHJd
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMF0sIHRyXSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0
b3JlcCIsIFt0ciwgYWRkcl0pCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRyID0gbm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5v
cGVyYW5kc1swLi4tMl0pCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwg
W3RyLCB6ZXJvLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAg
ICAgICAgICB3aGVuICJibXVsaW8iCisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5uZXcobm9k
ZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5v
cGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0pCisgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicnNoaWZ0aSIsIFtub2Rl
Lm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2RlLmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0p
CisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAiYmluZXEiLCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5kc1stMV1dKQorICAgICAgICAg
ICAgd2hlbiAvXmJtdWxpLworICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9ICR+LnBvc3RfbWF0
Y2gKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4tMl0pCisgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnRpIiArIGNvbmRpdGlv
biwgW25vZGUub3BlcmFuZHNbLTJdLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3
aGVuICJiaWEiLCAiYnBhIiwgImJiYSIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5v
ZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVb
MSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJh
bmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0
ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJp
YWVxIiwgImJwYWVxIiwgImJiYWVxIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9k
ZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsx
LDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFu
ZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVy
Lm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJiaWIi
LCAiYnBiIiwgImJiYiIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9y
aWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAi
YiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdLCBu
b2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
emVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYmVxIiwgImJw
YmVxIiwgImJiYmVxIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3Jp
Z2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJi
IiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5v
ZGUub3BlcmFuZHNbMF1dKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHpl
cm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoi
LCAiYnRieiIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJi
eiIsIG5vZGUpCisgICAgICAgICAgICB3aGVuICJidGlueiIsICJidHBueiIsICJidGJueiIKKyAg
ICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJibnoiLCBub2RlKQor
ICAgICAgICAgICAgd2hlbiAiYnRpbyIsICJidHBvIiwgImJ0Ym8iCisgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICB3aGVuICJidGlzIiwgImJ0cHMiLCAiYnRicyIK
KyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJicyIsIG5vZGUp
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisg
ICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBvZiBz
aGlmdCBvcHMuIEZvciBleGFtcGxlOgorIworIyBsc2hpZnRpIGZvbywgYmFyCisjCisjIHdpbGwg
YmVjb21lOgorIworIyBhbmRpIGZvbywgMzEsIHRtcAorIyBsc2hpZnRpIHRtcCwgYmFyCisjCisK
K2RlZiBtaXBzU2FuaXRpemVTaGlmdChvcGVyYW5kLCBsaXN0KQorICAgIHJldHVybiBvcGVyYW5k
IGlmIG9wZXJhbmQuaW1tZWRpYXRlPworCisgICAgdG1wID0gVG1wLm5ldyhvcGVyYW5kLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcob3BlcmFuZC5jb2RlT3Jp
Z2luLCAiYW5kaSIsIFtvcGVyYW5kLCBJbW1lZGlhdGUubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwg
MzEpLCB0bXBdKQorICAgIHRtcAorZW5kCisKK2RlZiBtaXBzTG93ZXJTaGlmdE9wcyhsaXN0KQor
ICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAg
ICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNv
ZGUKKyAgICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJs
c2hpZnRwIiwgInJzaGlmdHAiLCAidXJzaGlmdHAiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5v
cGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW21pcHNTYW5pdGl6ZVNoaWZ0
KG5vZGUub3BlcmFuZHNbMF0sIG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtub2RlLm9wZXJhbmRzWzBdLCBtaXBz
U2FuaXRpemVTaGlmdChub2RlLm9wZXJhbmRzWzFdLCBuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sy
XV0pCisgICAgICAgICAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1iZXIgb2Ygb3BlcmFuZHMg
Zm9yIHNoaWZ0IGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG5vZGUub3BlcmFu
ZHMuc2l6ZSA9PSAzCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBu
ZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBvZiBtYWxmb3JtZWQgYWRkcmVzc2VzLiBGb3Ig
ZXhhbXBsZToKKyMKKyMgbG9hZHAgMTAwMDBbZm9vXSwgYmFyCisjCisjIHdpbGwgYmVjb21lOgor
IworIyBtb3ZlIDEwMDAwLCB0bXAKKyMgYWRkcCBmb28sIHRtcAorIyBsb2FkcCAwW3RtcF0sIGJh
cgorIworCitjbGFzcyBOb2RlCisgICAgZGVmIG1pcHNMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc1Jl
Y3Vyc2UobGlzdCkKKyAgICAgICAgbWFwQ2hpbGRyZW4geworICAgICAgICAgICAgfCBub2RlIHwK
KyAgICAgICAgICAgIG5vZGUubWlwc0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzUmVjdXJzZShsaXN0
KQorICAgICAgICB9CisgICAgZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiBtaXBz
TG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNSZWN1cnNlKGxpc3QpCisgICAgICAgIGlmIG9mZnNldC52
YWx1ZSA8IC0weGZmZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHhmZmZmCisgICAgICAgICAgICB0bXAg
PSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtvZmZzZXQsIHRtcF0pCisgICAgICAgICAgICBs
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFtiYXNlLCB0bXBdKQor
ICAgICAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wLCBJbW1lZGlhdGUubmV3KGNv
ZGVPcmlnaW4sIDApKQorICAgICAgICBlbHNlCisgICAgICAgICAgICBzZWxmCisgICAgICAgIGVu
ZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiBtaXBzTG93ZXJNYWxm
b3JtZWRBZGRyZXNzZXNSZWN1cnNlKGxpc3QpCisgICAgICAgIGlmIHNjYWxlU2hpZnQgPT0gMAor
ICAgICAgICAgICAgdG1wMCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAg
IGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIGluZGV4
LCB0bXAwXSkKKyAgICAgICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcDAsIEltbWVk
aWF0ZS5uZXcoY29kZU9yaWdpbiwgb2Zmc2V0LnZhbHVlKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRtcDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibHNoaWZ0aSIsIFtpbmRleCwgSW1tZWRp
YXRlLm5ldyhjb2RlT3JpZ2luLCBzY2FsZVNoaWZ0KSwgdG1wMF0pOworICAgICAgICAgICAgbGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFkZHAiLCBbYmFzZSwgdG1wMF0pCisg
ICAgICAgICAgICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNv
ZGVPcmlnaW4sIG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitj
bGFzcyBBYnNvbHV0ZUFkZHJlc3MKKyAgICBkZWYgbWlwc0xvd2VyTWFsZm9ybWVkQWRkcmVzc2Vz
UmVjdXJzZShsaXN0KQorICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisg
ICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJtb3ZlIiwgW2FkZHJl
c3MsIHRtcF0pCisgICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcCwgSW1tZWRpYXRl
Lm5ldyhjb2RlT3JpZ2luLCAwKSkKKyAgICBlbmQKK2VuZAorCitkZWYgbWlwc0xvd2VyTWFsZm9y
bWVkQWRkcmVzc2VzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAg
ICAgICAgfCBub2RlIHwKKyAgICAgICAgbmV3TGlzdCA8PCBub2RlLm1pcHNMb3dlck1hbGZvcm1l
ZEFkZHJlc3Nlc1JlY3Vyc2UobmV3TGlzdCkKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMK
KyMgTG93ZXJpbmcgb2YgbWFsZm9ybWVkIGFkZHJlc3NlcyBpbiBkb3VibGUgbG9hZHMgYW5kIHN0
b3Jlcy4gRm9yIGV4YW1wbGU6CisjCisjIGxvYWRkIFtmb28sIGJhciwgOF0sIGJhegorIworIyBi
ZWNvbWVzOgorIworIyBsZWFwIFtmb28sIGJhciwgOF0sIHRtcAorIyBsb2FkZCBbdG1wXSwgYmF6
CisjCisKK2NsYXNzIE5vZGUKKyAgICBkZWYgbWlwc0RvdWJsZUFkZHJlc3MobGlzdCkKKyAgICAg
ICAgc2VsZgorICAgIGVuZAorZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiBtaXBzRG91
YmxlQWRkcmVzcyhsaXN0KQorICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIp
CisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJsZWFwIiwgW3Nl
bGYsIHRtcF0pCisgICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcCwgSW1tZWRpYXRl
Lm5ldyhjb2RlT3JpZ2luLCAwKSkKKyAgICBlbmQKK2VuZAorCitkZWYgbWlwc0xvd2VyTWFsZm9y
bWVkQWRkcmVzc2VzRG91YmxlKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNo
IHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgor
ICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAibG9hZGQiCisg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAibG9hZGQiLCBbbm9kZS5vcGVyYW5kc1swXS5taXBzRG91YmxlQWRkcmVzcyhuZXdMaXN0KSwg
bm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAgICB3aGVuICJzdG9yZWQiCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVk
IiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0ubWlwc0RvdWJsZUFkZHJlc3Mo
bmV3TGlzdCldKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
bm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTG93
ZXJpbmcgb2YgbWlzcGxhY2VkIGltbWVkaWF0ZXMuIEZvciBleGFtcGxlOgorIworIyBzdG9yZWkg
MCwgW2Zvb10KKyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIG1vdmUgMCwgdG1wCisjIHN0b3JlaSB0
bXAsIFtmb29dCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKGxpc3QpCisg
ICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAg
ICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29k
ZQorICAgICAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIsICJzdG9yZWIiCisgICAgICAg
ICAgICAgICAgb3BlcmFuZHMgPSBub2RlLm9wZXJhbmRzCisgICAgICAgICAgICAgICAgbmV3T3Bl
cmFuZHMgPSBbXQorICAgICAgICAgICAgICAgIG9wZXJhbmRzLmVhY2ggeworICAgICAgICAgICAg
ICAgICAgICB8IG9wZXJhbmQgfAorICAgICAgICAgICAgICAgICAgICBpZiBvcGVyYW5kLmlzX2E/
IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhvcGVyYW5k
LmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJhbmQsIHRtcF0p
CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA8PCB0bXAKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3BlcmFuZHMgPDwgb3Bl
cmFuZAorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2Rl
Lm9wY29kZSwgbmV3T3BlcmFuZHMpCisgICAgICAgICAgICB3aGVuICJzbHQiLCAic2x0dSIsICJz
bHRiIiwgInNsdHViIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMV0uaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3Jp
Z2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgbm9kZS5vcGNvZGUsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXAsIG5vZGUub3BlcmFuZHNbMl1d
KQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAi
CisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBbdG1wXSAr
IG5vZGUub3BlcmFuZHNbMS4uLTFdKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBub2RlLm1pcHNMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXNSZWN1
cnNlKG5ld0xpc3QpCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBu
ZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBvZiBtYWxmb3JtZWQgaW1tZWRpYXRlcyBleGNl
cHQgd2hlbiB1c2VkIGluIGEgIm1vdmUiIGluc3RydWN0aW9uLgorIyBGb3IgZXhhbXBsZToKKyMK
KyMgYWRkcCA2NDI2NDEsIGZvbworIworIyB3aWxsIGJlY29tZToKKyMKKyMgbW92ZSA2NDI2NDEs
IHRtcAorIyBhZGRwIHRtcCwgZm9vCisjCisKK2NsYXNzIE5vZGUKKyAgICBkZWYgbWlwc0xvd2Vy
TWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2UobGlzdCkKKyAgICAgICAgbWFwQ2hpbGRyZW4gewor
ICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIG5vZGUubWlwc0xvd2VyTWFsZm9ybWVk
SW1tZWRpYXRlc1JlY3Vyc2UobGlzdCkKKyAgICAgICAgfQorICAgIGVuZAorZW5kCisKK2NsYXNz
IEFkZHJlc3MKKyAgICBkZWYgbWlwc0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2UobGlz
dCkKKyAgICAgICAgc2VsZgorICAgIGVuZAorZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRl
ZiBtaXBzTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVjdXJzZShsaXN0KQorICAgICAgICBzZWxm
CisgICAgZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIG1pcHNMb3dl
ck1hbGZvcm1lZEltbWVkaWF0ZXNSZWN1cnNlKGxpc3QpCisgICAgICAgIHNlbGYKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgbWlwc0xvd2VyTWFsZm9ybWVkSW1tZWRp
YXRlc1JlY3Vyc2UobGlzdCkKKyAgICAgICAgaWYgdmFsdWUgPCAtMHhmZmZmIG9yIHZhbHVlID4g
MHhmZmZmCisgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibW92ZSIsIFtzZWxm
LCB0bXBdKQorICAgICAgICAgICAgdG1wCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlbGYK
KyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVmIG1pcHNMb3dlck1hbGZvcm1lZEltbWVk
aWF0ZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8
IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBj
YXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgbm9kZS5taXBzTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVjdXJzZShuZXdMaXN0KQor
ICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9k
ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTG93ZXJpbmcg
b2YgbWlzcGxhY2VkIGFkZHJlc3Nlcy4gRm9yIGV4YW1wbGU6CisjCisjIGFkZGkgZm9vLCBbYmFy
XQorIworIyB3aWxsIGJlY29tZToKKyMKKyMgbG9hZGkgW2Jhcl0sIHRtcAorIyBhZGRpIGZvbywg
dG1wCisjIHN0b3JlaSB0bXAsIFtiYXJdCisjCisjIEFub3RoZXIgZXhhbXBsZToKKyMKKyMgYWRk
aSBbZm9vXSwgYmFyCisjCisjIHdpbGwgYmVjb21lOgorIworIyBsb2FkaSBbZm9vXSwgdG1wCisj
IGFkZGkgdG1wLCBiYXIKKyMKKworZGVmIG1pcHNBc1JlZ2lzdGVyKHByZUxpc3QsIHBvc3RMaXN0
LCBvcGVyYW5kLCBzdWZmaXgsIG5lZWRTdG9yZSkKKyAgICByZXR1cm4gb3BlcmFuZCB1bmxlc3Mg
b3BlcmFuZC5hZGRyZXNzPworCisgICAgdG1wID0gVG1wLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4s
IGlmIHN1ZmZpeCA9PSAiZCIgdGhlbiA6ZnByIGVsc2UgOmdwciBlbmQpCisgICAgcHJlTGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcob3BlcmFuZC5jb2RlT3JpZ2luLCAibG9hZCIgKyBzdWZmaXgsIFtv
cGVyYW5kLCB0bXBdKQorICAgIGlmIG5lZWRTdG9yZQorICAgICAgICBwb3N0TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcob3BlcmFuZC5jb2RlT3JpZ2luLCAic3RvcmUiICsgc3VmZml4LCBbdG1wLCBv
cGVyYW5kXSkKKyAgICBlbmQKKyAgICB0bXAKK2VuZAorCitkZWYgbWlwc0FzUmVnaXN0ZXJzKHBy
ZUxpc3QsIHBvc3RMaXN0LCBvcGVyYW5kcywgc3VmZml4KQorICAgIG5ld09wZXJhbmRzID0gW10K
KyAgICBvcGVyYW5kcy5lYWNoX3dpdGhfaW5kZXggeworICAgICAgICB8IG9wZXJhbmQsIGluZGV4
IHwKKyAgICAgICAgbmV3T3BlcmFuZHMgPDwgbWlwc0FzUmVnaXN0ZXIocHJlTGlzdCwgcG9zdExp
c3QsIG9wZXJhbmQsIHN1ZmZpeCwgaW5kZXggPT0gb3BlcmFuZHMuc2l6ZSAtIDEpCisgICAgfQor
ICAgIG5ld09wZXJhbmRzCitlbmQKKworZGVmIG1pcHNMb3dlck1pc3BsYWNlZEFkZHJlc3Nlcyhs
aXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8
CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0
cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAg
d2hlbiAiYWRkaSIsICJhZGRwIiwgImFkZGlzIiwgImFuZGkiLCAiYW5kcCIsICJsc2hpZnRpIiwg
ImxzaGlmdHAiLCAibXVsaSIsICJtdWxwIiwgIm5lZ2kiLAorICAgICAgICAgICAgICAgICJuZWdw
IiwgIm5vdGkiLCAib3JpIiwgIm9yaXMiLCAib3JwIiwgInJzaGlmdGkiLCAidXJzaGlmdGkiLCAi
cnNoaWZ0cCIsICJ1cnNoaWZ0cCIsICJzdWJpIiwKKyAgICAgICAgICAgICAgICAic3VicCIsICJz
dWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sIC9eYnRpLywgL15idHAvLCAvXmNp
LywgL15jcC8sIC9edGkvCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1pcHNBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9w
ZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgd2hlbiAiYmJlcSIsICJiYm5lcSIsICJiYmEiLCAi
YmJhZXEiLCAiYmJiIiwgImJiYmVxIiwgImJ0Ym8iLCAiYnRieiIsICJidGJueiIsICJ0YnoiLCAi
dGJueiIsCisgICAgICAgICAgICAgICAgInRibyIsICJjYmVxIiwgImNibmVxIiwgImNiYSIsICJj
YmFlcSIsICJjYmIiLCAiY2JiZXEiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1pcHNBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBu
b2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAiYmJndCIsICJiYmd0ZXEiLCAi
YmJsdCIsICJiYmx0ZXEiLCAiYnRicyIsICJ0YnMiLCAiY2JndCIsICJjYmd0ZXEiLCAiY2JsdCIs
ICJjYmx0ZXEiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1pcHNBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRz
LCAiYnMiKSkKKyAgICAgICAgICAgIHdoZW4gImFkZGQiLCAiZGl2ZCIsICJzdWJkIiwgIm11bGQi
LCAic3FydGQiLCAvXmJkLworICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtaXBzQXNSZWdpc3RlcnMobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5v
cGVyYW5kcywgImQiKSkKKyAgICAgICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgICAgICBp
ZiBub2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFNw
ZWNpYWxSZWdpc3Rlci5uZXcoIiRyYSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRpIiwgW25v
ZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFt0bXBdKQorICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW21pcHNBc1JlZ2lzdGVyKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlv
bnMsIG5vZGUub3BlcmFuZHNbMF0sICJwIiwgZmFsc2UpXSkKKyAgICAgICAgICAgICAgICBlbmQK
KyAgICAgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICAgICAgcmVzdG9yZUdQID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5hZGRyZXNzPworICAgICAg
ICAgICAgICAgICAgICB0bXAgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDkiKQorICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLm9wZXJhbmRzWzBdLmNv
ZGVPcmlnaW4sICJsb2FkcCIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAg
ICAgICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2lmIG5vZGUub3Bl
cmFuZHNbMF0uaXNfYT8gTGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0g
bm9kZS5vcGVyYW5kc1swXQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAg
ICAgICAgICAgICAgIHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29k
ZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdG9yZUdQID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIHRtcCA9IG5vZGUub3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IG5vZGUub3Bjb2RlLCBbdG1wXSkKKyAgICAgICAgICAgICAgICBpZiByZXN0b3JlR1AKKyAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW92ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtTcGVjaWFs
UmVnaXN0ZXIubmV3KCIkczQiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJGdwIildKQorICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAic2x0IiwgInNsdHUiCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pcHNBc1JlZ2lzdGVycyhuZXdM
aXN0LCBbXSwgbm9kZS5vcGVyYW5kcywgImkiKSkKKyAgICAgICAgICAgIHdoZW4gInNsdHViIiwg
InNsdGIiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1p
cHNBc1JlZ2lzdGVycyhuZXdMaXN0LCBbXSwgbm9kZS5vcGVyYW5kcywgImIiKSkKKyAgICAgICAg
ICAgIHdoZW4gImJ6IiwgImJueiIsICJicyIsICJibyIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWlwc0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2Rl
Lm9wZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBuZXdMaXN0ICs9IHBvc3RJ
bnN0cnVjdGlvbnMKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisg
ICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBvZiBy
ZWdpc3RlciByZXVzZSBpbiBjb21wYXJlIGluc3RydWN0aW9ucy4gRm9yIGV4YW1wbGU6CisjCisj
IGNpZXEgdDAsIHQxLCB0MAorIworIyB3aWxsIGJlY29tZToKKyMKKyMgbW92IHRtcCwgdDAKKyMg
Y2llcSB0bXAsIHQxLCB0MAorIworCitkZWYgbWlwc0xvd2VyUmVnaXN0ZXJSZXVzZShsaXN0KQor
ICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAg
ICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNv
ZGUKKyAgICAgICAgICAgIHdoZW4gImNpZXEiLCAiY2luZXEiLCAiY2lhIiwgImNpYWVxIiwgImNp
YiIsICJjaWJlcSIsICJjaWd0IiwgImNpZ3RlcSIsICJjaWx0IiwgImNpbHRlcSIsCisgICAgICAg
ICAgICAgICAgImNwZXEiLCAiY3BuZXEiLCAiY3BhIiwgImNwYWVxIiwgImNwYiIsICJjcGJlcSIs
ICJjcGd0IiwgImNwZ3RlcSIsICJjcGx0IiwgImNwbHRlcSIsCisgICAgICAgICAgICAgICAgInRp
byIsICJ0aXMiLCAidGl6IiwgInRpbnoiLCAidGJvIiwgInRicyIsICJ0YnoiLCAidGJueiIsICJ0
cG8iLCAidHBzIiwgInRweiIsICJ0cG56IiwKKyAgICAgICAgICAgICAgICAiY2JlcSIsICJjYm5l
cSIsICJjYmEiLCAiY2JhZXEiLCAiY2JiIiwgImNiYmVxIiwgImNiZ3QiLCAiY2JndGVxIiwgImNi
bHQiLCAiY2JsdGVxIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAy
CisgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0gPT0gbm9kZS5vcGVyYW5k
c1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgYXQgI3tub2RlLmNv
ZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgbm9kZS5vcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAg
ICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXSA9PSBub2RlLm9wZXJhbmRzWzJdCisgICAg
ICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
bm9kZS5vcGNvZGUsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMl1dKQor
ICAgICAgICAgICAgICAgICAgICBlbHNpZiBub2RlLm9wZXJhbmRzWzFdID09IG5vZGUub3BlcmFu
ZHNbMl0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3Jp
Z2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW25vZGUub3BlcmFuZHNbMF0sIHRtcCwgbm9kZS5vcGVy
YW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8
IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCitkZWYgbWlwc0xv
d2VyQ29tcGFyZVRlbXBsYXRlKGxpc3QsIG5vZGUsIG9wQ21wLCBvcE1vdikKKyAgICB0bXAwID0g
VG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgdG1wMSA9IFRtcC5uZXcobm9kZS5j
b2RlT3JpZ2luLCA6Z3ByKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhuaWwsIDApLCBub2RlLm9wZXJhbmRzWzJdXSkK
KyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wQ21wLCBbbm9k
ZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdG1wMF0pCisgICAgbGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtJbW1lZGlhdGUubmV3KG5pbCwg
MSksIHRtcDFdKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
b3BNb3YsIFtub2RlLm9wZXJhbmRzWzJdLCB0bXAxLCB0bXAwXSkKK2VuZAorCisjCisjIExvd2Vy
aW5nIGNvbXBhcmVzIGFuZCB0ZXN0cy4KKyMKKworZGVmIG1pcHNMb3dlckNvbXBhcmVzKGxpc3Qp
CisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAg
ICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9w
Y29kZQorICAgICAgICAgICAgd2hlbiAiY2llcSIsICJjcGVxIiwgImNiZXEiCisgICAgICAgICAg
ICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1v
dnoiKQorICAgICAgICAgICAgd2hlbiAiY2luZXEiLCAiY3BuZXEiLCAiY2JuZXEiCisgICAgICAg
ICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwg
Im1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCisgICAgICAgICAg
ICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1v
dnoiKQorICAgICAgICAgICAgd2hlbiAidGlueiIsICJ0Ym56IiwgInRwbnoiCisgICAgICAgICAg
ICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1v
dm4iKQorICAgICAgICAgICAgd2hlbiAidGlvIiwgInRibyIsICJ0cG8iCisgICAgICAgICAgICAg
ICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAg
bGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9w
ZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRz
WzJdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCB0bXBdKQorICAgICAgICAgICAgd2hl
biAidGlzIiwgInRicyIsICJ0cHMiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJh
bmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCB0bXAsIFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiR6ZXJvIildKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisK
KyMKKyMgTGVhIHN1cHBvcnQuCisjCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgbWlwc0VtaXRM
ZWEoZGVzdGluYXRpb24pCisgICAgICAgIGlmIGRlc3RpbmF0aW9uID09IGJhc2UKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlvbi5taXBzT3BlcmFuZH0sICN7b2Zmc2V0
LnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje2Rl
c3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tiYXNlLm1pcHNPcGVyYW5kfSwgI3tvZmZzZXQudmFs
dWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjIEZJWE1FOiB3ZSBjb3VsZCBzdXBw
b3J0IEFic29sdXRlQWRkcmVzcyBmb3IgbGVhLCBidXQgd2UgZG9uJ3QuCisKKyMKKyMgQWRkIFBJ
QyBjb21wYXRpYmxlIGhlYWRlciBjb2RlIHRvIHByb2xvZ3VlL2VudHJ5IHJ1dGlucy4KKyMKKwor
ZGVmIG1pcHNBZGRQSUNDb2RlKGxpc3QpCisgICAgbXlMaXN0ID0gW10KKyAgICBsaXN0LmVhY2gg
eworICAgICAgICB8IG5vZGUgfAorICAgICAgICBteUxpc3QgPDwgbm9kZQorICAgICAgICBpZiBu
b2RlLmlzX2E/IExhYmVsCisgICAgICAgICAgICBpZiAvX3Byb2xvZ3VlJC8ubWF0Y2gobm9kZS5u
YW1lKSB8fCAvXl9sbGludF9mdW5jdGlvbl8vLm1hdGNoKG5vZGUubmFtZSkKKyAgICAgICAgICAg
ICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInBpY2hkciIs
IFtdKQorICAgICAgICAgICAgZWxzaWYgL19sbGludF9vcF9jYXRjaC8ubWF0Y2gobm9kZS5uYW1l
KQorICAgICAgICAgICAgICAgIG15TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAicGljaGRycmEiLCBbXSkKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKKyAgICB9
CisgICAgbXlMaXN0CitlbmQKKworIworIyBBY3R1YWwgbG93ZXJpbmcgY29kZSBmb2xsb3dzLgor
IworCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2RpZmllZExpc3RNSVBTCisgICAgICAg
IG15TGlzdCA9IEBsaXN0CisKKyAgICAgICAgIyBWZXJpZnkgdGhhdCB3ZSB3aWxsIG9ubHkgc2Vl
IGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAgICAgICBteUxpc3QuZWFjaCB7CisgICAgICAg
ICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24g
b3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMYWJlbCBvcgorICAgICAgICAgICAg
ICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQgI3tub2RlLmlu
c3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIgCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
fQorCisgICAgICAgIG15TGlzdCA9IG1pcHNBZGRQSUNDb2RlKG15TGlzdCkKKyAgICAgICAgbXlM
aXN0ID0gbWlwc0xvd2VyQnJhbmNoT3BzKG15TGlzdCkKKyAgICAgICAgbXlMaXN0ID0gbWlwc0xv
d2VyU2hpZnRPcHMobXlMaXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93ZXJNYWxmb3JtZWRB
ZGRyZXNzZXMobXlMaXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93ZXJNYWxmb3JtZWRBZGRy
ZXNzZXNEb3VibGUobXlMaXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93ZXJNaXNwbGFjZWRJ
bW1lZGlhdGVzKG15TGlzdCkKKyAgICAgICAgbXlMaXN0ID0gbWlwc0xvd2VyTWFsZm9ybWVkSW1t
ZWRpYXRlcyhteUxpc3QpCisgICAgICAgIG15TGlzdCA9IG1pcHNMb3dlck1pc3BsYWNlZEFkZHJl
c3NlcyhteUxpc3QpCisgICAgICAgIG15TGlzdCA9IG1pcHNMb3dlclJlZ2lzdGVyUmV1c2UobXlM
aXN0KQorICAgICAgICBteUxpc3QgPSBtaXBzTG93ZXJDb21wYXJlcyhteUxpc3QpCisgICAgICAg
IG15TGlzdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMobXlMaXN0LCA6Z3ByLCBNSVBT
X1RFTVBfR1BSUykKKyAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jhcmll
cyhteUxpc3QsIDpmcHIsIE1JUFNfVEVNUF9GUFJTKQorCisgICAgICAgIHJldHVybiBteUxpc3QK
KyAgICBlbmQKK2VuZAorCitkZWYgbWlwc09wZXJhbmRzKG9wZXJhbmRzKQorICAgIG9wZXJhbmRz
Lm1hcHt8dnwgdi5taXBzT3BlcmFuZH0uam9pbigiLCAiKQorZW5kCisKK2RlZiBtaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKQorICAgIG1pcHNPcGVyYW5kcyhbb3BlcmFuZHNbLTFdXSArIG9w
ZXJhbmRzWzAuLi0yXSkKK2VuZAorCitkZWYgZ2V0TUlQU09wY29kZShvcGNvZGUsIHN1ZmZpeCkK
KworZW5kCisKK2RlZiBlbWl0TUlQU0NvbXBhY3Qob3Bjb2RlLCBvcGNvZGVpLCBvcGVyYW5kcykK
KyAgICBwb3N0Zml4ID0gIiIKKyAgICBpZiBvcGNvZGUgPT0gInN1YiIKKyAgICAgICAgaWYgb3Bl
cmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICBvcGNvZGUgPSAiYWRkIgorICAg
ICAgICAgICAgb3BlcmFuZHNbMF0gPSBJbW1lZGlhdGUubmV3KG9wZXJhbmRzWzBdLmNvZGVPcmln
aW4sIC0xICogb3BlcmFuZHNbMF0udmFsdWUpCisgICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmlz
X2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgb3Bjb2RlID0gImFkZCIKKyAgICAgICAgICAgIG9w
ZXJhbmRzWzFdID0gSW1tZWRpYXRlLm5ldyhvcGVyYW5kc1sxXS5jb2RlT3JpZ2luLCAtMSAqIG9w
ZXJhbmRzWzFdLnZhbHVlKQorICAgICAgICBlbmQKKyAgICAgICAgcG9zdGZpeCA9ICJ1IgorICAg
IGVsc2lmIG9wY29kZSA9PSAiYWRkIgorICAgICAgICBwb3N0Zml4ID0gInUiCisgICAgZW5kCisg
ICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IElt
bWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAje29w
ZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0udmFsdWV9IgorICAgICAgICBlbHNpZiBvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlh
dGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9aSN7cG9zdGZpeH0gI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzFdLnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29k
ZX0je3Bvc3RmaXh9ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICBl
bmQKKyAgICBlbHNlCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDIKKyAg
ICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAgICBpZiBvcGVy
YW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9
aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0je3Bvc3RmaXh9ICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0TUlQU1NoaWZ0
Q29tcGFjdChvcGNvZGUsIG9wZXJhbmRzKQorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAg
ICAgICBpZiAob3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRlKQorICAgICAgICAgICAgJGFzbS5w
dXRzICIje29wY29kZX0gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgJGFzbS5wdXRzICIje29wY29kZX12ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5k
cy5zaXplID09IDIKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAg
ICAkYXNtLnB1dHMgIiN7b3Bjb2RlfXYgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tvcGVyYW5kc1sxXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZh
bHVlfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTKG9wY29kZSwg
b3BlcmFuZHMpCisgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgICRhc20ucHV0cyAi
I3tvcGNvZGV9ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgIGVsc2UKKyAg
ICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICAkYXNtLnB1dHMg
IiN7b3Bjb2RlfSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgIGVuZAorZW5kCisKK2Rl
ZiBlbWl0TUlQU0RvdWJsZUJyYW5jaChicmFuY2hPcGNvZGUsIG5lZywgb3BlcmFuZHMpCisgICAg
JGFzbS5wdXRzICJjLiN7YnJhbmNoT3Bjb2RlfS5kICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAu
LjFdKX0iCisgICAgaWYgKCFuZWcpCisgICAgICAgICRhc20ucHV0cyAiYmMxdCAje29wZXJhbmRz
WzJdLmFzbUxhYmVsfSIKKyAgICBlbHNlCisgICAgICAgICRhc20ucHV0cyAiYmMxZiAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbnN0cnVjdGlvbgorICAg
IGRlZiBsb3dlck1JUFMKKyAgICAgICAgJGFzbS5jb21tZW50IGNvZGVPcmlnaW5TdHJpbmcKKyAg
ICAgICAgY2FzZSBvcGNvZGUKKyAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIiwgImFkZGlzIgor
ICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJ
bW1lZGlhdGUKKyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0
ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzJdLnJlZ2lzdGVyPwor
ICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLnZhbHVlID09IDAgI2FuZCBzdWZmaXguZW1w
dHk/CisgICAgICAgICAgICAgICAgICAgIHVubGVzcyBvcGVyYW5kc1sxXSA9PSBvcGVyYW5kc1sy
XQorICAgICAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICN7b3BlcmFuZHNbMl0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgImFkZGl1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBd
LnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdp
c3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMl0ucmVnaXN0ZXI/
CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGR1ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRz
WzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgICAgICB1bmxlc3MgSW1tZWRpYXRl
Lm5ldyhuaWwsIDApID09IG9wZXJhbmRzWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgImFkZGl1ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje21pcHNGbGlwcGVkT3Bl
cmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZHUgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICB3aGVuICJhbmRpIiwgImFuZHAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoImFu
ZCIsICJhbmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAib3JpIiwgIm9ycCIKKyAgICAgICAg
ICAgIGVtaXRNSVBTQ29tcGFjdCgib3IiLCAib3JyIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
Im9yaXMiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoIm9yIiwgIm9ycnMiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAieG9yaSIsICJ4b3JwIgorICAgICAgICAgICAgZW1pdE1JUFNDb21w
YWN0KCJ4b3IiLCAiZW9yIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImxzaGlmdGkiLCAibHNo
aWZ0cCIKKyAgICAgICAgICAgIGVtaXRNSVBTU2hpZnRDb21wYWN0KCJzbGwiLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAicnNoaWZ0aSIsICJyc2hpZnRwIgorICAgICAgICAgICAgZW1pdE1JUFNT
aGlmdENvbXBhY3QoInNyYSIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ1cnNoaWZ0aSIsICJ1
cnNoaWZ0cCIKKyAgICAgICAgICAgIGVtaXRNSVBTU2hpZnRDb21wYWN0KCJzcmwiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgorICAgICAgICAgICAgZW1pdE1JUFMoIm11
bCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzdWJpIiwgInN1YnAiLCAic3ViaXMiCisgICAg
ICAgICAgICBlbWl0TUlQU0NvbXBhY3QoInN1YiIsICJzdWJzIiwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gIm5lZ2kiLCAibmVncCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibmVndSAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAg
IHdoZW4gIm5vdGkiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5vciAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICR6ZXJvIgorICAgICAgICB3
aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCisgICAgICAgICAgICAkYXNtLnB1dHMgImx3
ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWki
LCAic3RvcmVwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdyAje21pcHNPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGJ1
ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkYnMi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImxiICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJzdG9yZWIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNiICN7
bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRoIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsaHUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRocyIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGggI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlaCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic2h2ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4g
ImxvYWRkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZGMxICN7bWlwc0ZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWQiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInNkYzEgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAiYWRkZCIK
KyAgICAgICAgICAgIGVtaXRNSVBTKCJhZGQuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJk
aXZkIgorICAgICAgICAgICAgZW1pdE1JUFMoImRpdi5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gInN1YmQiCisgICAgICAgICAgICBlbWl0TUlQUygic3ViLmQiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAibXVsZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJtdWwuZCIsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJzcXJ0ZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3FydC5kICN7bWlw
c0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJjaTJkIgorICAgICAg
ICAgICAgcmFpc2UgImludmFsaWQgb3BzIG9mICN7c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHNbMV0uaXNfYT8gRlBSZWdpc3RlcklEIGFuZCBvcGVy
YW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICRhc20ucHV0cyAibXRjMSAje29wZXJhbmRz
WzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImN2dC5kLncgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJiZGVxIgorICAgICAgICAgICAgZW1p
dE1JUFNEb3VibGVCcmFuY2goImVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
ZG5lcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1ZXEiLCB0cnVlLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAiYmRndCIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJh
bmNoKCJ1bGUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndGVxIgorICAgICAg
ICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsdCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZGx0IgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9sdCIsIGZh
bHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdGVxIgorICAgICAgICAgICAgZW1pdE1J
UFNEb3VibGVCcmFuY2goIm9sZSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRl
cXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVlcSIsIGZhbHNlLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAiYmRuZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0dW4iCisgICAg
ICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2xlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAg
ICAgIHdoZW4gImJkZ3RlcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9s
dCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0dW4iCisgICAgICAgICAgICBl
bWl0TUlQU0RvdWJsZUJyYW5jaCgidWx0IiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJiZGx0ZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bGUiLCBmYWxz
ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJ0ZDJpIgorICAgICAgICAgICAgIyBGSVhNRTog
bWF5IGJlIGEgZ29vZCBpZGVhIHRvIGp1c3QgZ2V0IHJpZCBvZiB0aGlzIGluc3RydWN0aW9uLCBz
aW5jZSB0aGUgaW50ZXJwcmV0ZXIKKyAgICAgICAgICAgICMgY3VycmVudGx5IGRvZXMgbm90IHVz
ZSBpdC4KKyAgICAgICAgICAgIHJhaXNlICJNSVBTIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNv
ZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJ0ZDJpIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJjdnQudy5kICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99LCAje29w
ZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAje29w
ZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30i
CisgICAgICAgIHdoZW4gImJjZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQudy5kICN7
TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1
dHMgImN2dC5kLncgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNPcGVyYW5kfSwgI3tNSVBTX1NDUkFU
Q0hfRlBSLm1pcHNTaW5nbGVMb30iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgi
ZXEiLCB0cnVlLCBbTUlQU19TQ1JBVENIX0ZQUiwgb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzJdXSkK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAk
emVybywgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gIm1vdmR6IgorICAg
ICAgICAgICAgIyBGSVhNRTogZWl0aGVyIHN1cHBvcnQgdGhpcyBvciByZW1vdmUgaXQuCisgICAg
ICAgICAgICByYWlzZSAiTUlQUyBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tj
b2RlT3JpZ2lufSIKKyAgICAgICAgd2hlbiAicG9wIgorICAgICAgICAgICAgJGFzbS5wdXRzICJs
dyAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgMCgkc3ApIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJhZGRpdSAkc3AsICRzcCwgNCIKKyAgICAgICAgd2hlbiAicHVzaCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiYWRkaXUgJHNwLCAkc3AsIC00IgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
dyAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgMCgkc3ApIgorICAgICAgICB3aGVuICJtb3Zl
IiwgInN4aTJwIiwgInp4aTJwIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1t
ZWRpYXRlCisgICAgICAgICAgICAgICAgbWlwc01vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFs
dWUsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20u
cHV0cyAibW92ZSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAg
IGVuZAorICAgICAgICB3aGVuICJub3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAg
ICAgICAgd2hlbiAiYmllcSIsICJicGVxIiwgImJiZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImJlcSAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxh
YmVsfSIKKyAgICAgICAgd2hlbiAiYmluZXEiLCAiYnBuZXEiLCAiYmJuZXEiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImJuZSAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmlndCIsICJicGd0IiwgImJiZ3QiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImJndCAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9
LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmlndGVxIiwgImJwZ3Rl
cSIsICJiYmd0ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJnZSAje21pcHNPcGVyYW5kcyhv
cGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAi
YmlsdCIsICJicGx0IiwgImJibHQiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJsdCAje21pcHNP
cGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAg
ICAgd2hlbiAiYmlsdGVxIiwgImJwbHRlcSIsICJiYmx0ZXEiCisgICAgICAgICAgICAkYXNtLnB1
dHMgImJsZSAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFz
bUxhYmVsfSIKKyAgICAgICAgd2hlbiAiam1wIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0u
bGFiZWw/CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqICN7b3BlcmFuZHNbMF0uYXNtTGFi
ZWx9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAianIgI3tv
cGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAi
Y2FsbCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmxhYmVsPworICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAiamFsICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAiamFsciAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJicmVhayIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiYnJlYWsiCisgICAgICAgIHdoZW4gInJldCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAianIgJHJhIgorICAgICAgICB3aGVuICJjaWEiLCAiY3BhIiwgImNiYSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3
aGVuICJjaWFlcSIsICJjcGFlcSIsICJjYmFlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0
dSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Jp
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAxIgorICAgICAgICB3aGVuICJjaWIiLCAiY3Bi
IiwgImNiYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzJdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJjaWJlcSIsICJjcGJlcSIsICJjYmJlcSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAxIgorICAgICAg
ICB3aGVuICJjaWd0IiwgImNwZ3QiLCAiY2JndCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpZ3RlcSIsICJjcGd0
ZXEiLCAiY2JndGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1p
cHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAiY2lsdCIsICJjcGx0IiwgImNibHQiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAg
ICB3aGVuICJjaWx0ZXEiLCAiY3BsdGVxIiwgImNibHRlcSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gInBlZWsi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImx3ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLnZhbHVlICogNH0oJHNwKSIKKyAgICAgICAgd2hlbiAicG9rZSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic3cgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0udmFsdWUgKiA0fSgkc3ApIgorICAgICAgICB3aGVuICJmaWkyZCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibXRjMSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sy
XS5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNTaW5nbGVIaX0iCisgICAgICAgIHdo
ZW4gImZkMmlpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1mYzEgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c1NpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAiYm8iCisgICAgICAgICAgICAkYXNtLnB1dHMgImJn
dCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJicyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiYmx0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJ6
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAg
ICAgICAgd2hlbiAiYm56IgorICAgICAgICAgICAgJGFzbS5wdXRzICJibmUgI3tvcGVyYW5kc1sw
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJd
LmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAibGVhaSIsICJsZWFwIgorICAgICAgICAgICAgb3Bl
cmFuZHNbMF0ubWlwc0VtaXRMZWEob3BlcmFuZHNbMV0pCisgICAgICAgIHdoZW4gInNtdWxsaSIK
KyAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHNtdWxsIGlu
ICN7c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHMu
bGVuZ3RoID09IDQKKyAgICAgICAgICAgICRhc20ucHV0cyAibXVsdCAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1mbG8gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1maGkgI3tvcGVyYW5kc1szXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm1v
dnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnogI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5k
fSIKKyAgICAgICAgd2hlbiAibW92biIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92biAje29w
ZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJzbHQiLCAic2x0YiIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAg
IHdoZW4gInNsdHUiLCAic2x0dWIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVy
YW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAicGljaGRyIgorICAgICAgICAgICAg
JGFzbS5wdXRTdHIoIk9GRkxJTkVfQVNNX0NQTE9BRCgkMjUpIikKKyAgICAgICAgICAgICRhc20u
cHV0cyAibW92ZSAkczQsICRncCIKKyAgICAgICAgd2hlbiAicGljaGRycmEiCisgICAgICAgICAg
ICAkYXNtLnB1dFN0cigiT0ZGTElORV9BU01fQ1BMT0FEKCQzMSkiKQorICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3ZlICRzNCwgJGdwIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAi
VW5oYW5kbGVkIG9wY29kZSAje29wY29kZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAg
ICAgZW5kCisgICAgZW5kCitlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZmM5YWU5NC4uYmU5MmU0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0xMC0xOCAgQmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmku
Y29tPgorCisgICAgICAgIE1JUFMgTExJbnQgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExMSW50IGltcGxlbWVudGF0aW9uIGZv
ciBNSVBTLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTItMTAtMTcgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBWZWN0
b3IuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKaW5kZXggM2MyNjNjNS4uYTVkYjY5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC05
MTMsNyArOTEzLDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERBUldJTikg
fHwgT1MoTElOVVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8
fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShRVCkgJiYgT1MoTElOVVgpKSkgXAotICAgICYm
IChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikpCisgICAgJiYgKENQ
VShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpCiAj
ZGVmaW5lIEVOQUJMRV9MTElOVCAxCiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="182664"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171085</attachid>
            <date>2012-10-27 01:42:20 -0700</date>
            <delta_ts>2012-11-05 06:32:46 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57993</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNiMjE3ZmIuLmI0MjNiOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTI3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOiBNSVBTIFBJQyBmaXhlcy4KKyAg
ICAgICAgKEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDogJHMjIHJlZ2lzdGVycyB1
c2FnZSBhZGRlZC4gTUlQUyBQSUMgZml4ZXMuCisgICAgICAgIChKU0M6OkpJVFRodW5rczo6SklU
VGh1bmtzKTogQWRkaXRpbm9uYWwgJHMjIHJlZ2lzdGVycyB1c2FnZSBhZGRlZC4KKyAgICAgICAg
KEpTQyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6ICRzIyByZWdpc3RlcnMgdXNhZ2UgYWRk
ZWQuCisgICAgICAgIChKSVRTdGFja0ZyYW1lKToKKyAgICAgICAgKiBsbGludC9MTEludE9mZmxp
bmVBc21Db25maWcuaDogTUlQUyBhcmNoLiBhZGRlZC4KKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbTogTUlQUyBhcmNoLiBhZGRlZC4KKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtOiBNSVBTIGFyY2guIGFkZGVkLgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXJtdjcucmI6IFNsaWdodGx5IG1vZGlmaWVkIHRvIG1hdGNoIG5ldyByaXNjLnJi
LgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6IE1JUFMgYXJjaC4gYWRkZWQuCisg
ICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6IE1JUFMgYXJjaC4gYWRkZWQuCisg
ICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJiOiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNt
L3Jpc2MucmI6IFNsaWdodGx5IG1vZGlmaWVkIGZvciBtb3JlIHJldXNhYmlsaXR5LgorCiAyMDEy
LTEwLTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRm9yd2Fy
ZCBPU1IgY2FsY3VsYXRpb24gaXMgd3JvbmcgaW4gdGhlIHByZXNlbmNlIG9mIG11bHRpcGxlIFNl
dExvY2Fscywgb3IgYSBtaXggb2YgU2V0TG9jYWxzIGFuZCBQaGFudG9tcwpAQCAtMjgsNyArNTUs
NyBAQAogICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHA6CiAgICAgICAg
IChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CiAgICAgICAgICogZGZn
L0RGR09TUkV4aXRDb21waWxlcjY0LmNwcDoKLSAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29t
cGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMu
KEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKICAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwOgogICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb252ZXJ0TGFzdE9TUkV4aXRUb0ZvcndhcmQpOgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBmYzZmOWY0Li4y
OWRmMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTEzMDQsNyArMTMwNCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQganVtcChSZWdpc3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmpy
KHRhcmdldCk7CisgICAgICAgIG1vdmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmpyKE1JUFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3NlbWJs
ZXIubm9wKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAppbmRleCAxM2UwNDM4Li45YjI3MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTQ3LDYgKzQ3LDE2IEBACiAKICNpZiBFTkFCTEUo
SklUKQogCisjaWYgQ1BVKE1JUFMpICYmIFdURl9NSVBTX1BJQworI2RlZmluZSBMT0FEX0ZVTkNU
SU9OX1RPX1Q5KGZ1bmN0aW9uKSBcCisgICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCisg
ICAgICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIg
XAorICAgICAgICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgorI2Vs
c2UKKyNkZWZpbmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgorI2VuZGlm
CisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2lmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4Nl82
NCkKQEAgLTIwMSw2ICsyMTEsNTIgQEAKICAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVu
Y3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCiAgICAgKTsKIAorI2VsaWYgQ09NUElM
RVIoR0NDKSAmJiBDUFUoTUlQUykKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVU
VVJOX0FERFJFU1NfRShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBc
CisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVf
U1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIg
IlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJl
c3MpIFwKKyAgICAgICAgIm1vdmUgJGExLCAkcmEiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOwor
CisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FQ0koZnVuY3Rp
b24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1C
T0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxu
IiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURfRlVO
Q1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJtb3Zl
ICRhMywgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24p
ICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9X
UkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisg
ICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikg
IlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJ
TkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9u
IyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAyMCgkc3ApIiAiXG4iIFwK
KyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVz
cyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJO
X0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBc
CisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVf
U1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIg
IlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJl
c3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjQoJHNwKSIgIlxuIiBcCisgICAgICAgICJiICIgTE9D
QUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7
CisKICNlbmRpZgogCiAjZGVmaW5lIFBfRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERS
RVNTX0UoZnVuY3Rpb24pIFwKQEAgLTE1MDcsNiArMTU2MywxNyBAQCBTWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgIm1vdiByMCwgcjUiICJcbiIKICAg
ICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0
ZSkgIlxuIgogKTsKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKE1JUFMpCithc20oCisiLnRl
eHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUp
ICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9T
VFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICBMT0FEX0ZVTkNUSU9O
X1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQorICAgICJsdyAkczAs
IC00MCgkczApIiAiXG4iCisgICAgIm1vdmUgJGEwLCAkczAiICJcbiIKKyAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgorKTsK
ICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFM
VUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSog
ZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggYmE4Yzc2Yy4u
MDEzNDk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTI4MCwx
MSArMjgwLDEzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VUICAg
ICAgICAgNjQKICNkZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAgICAgIDY4CiAjZGVmaW5l
IFBSRVNFUlZFRF9TMl9PRkZTRVQgICAgICAgICA3MgotI2RlZmluZSBQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUIDc2Ci0jZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4
MAotI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgODQKLSNkZWZpbmUgR0xPQkFM
X0RBVEFfT0ZGU0VUICAgICAgICAgMTAwCi0jZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAg
ICAgIDEwNAorI2RlZmluZSBQUkVTRVJWRURfUzNfT0ZGU0VUICAgICAgICAgNzYKKyNkZWZpbmUg
UFJFU0VSVkVEX1M0X09GRlNFVCAgICAgICAgIDgwCisjZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5f
QUREUkVTU19PRkZTRVQgODQKKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDg4
CisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA5MgorI2RlZmluZSBHTE9CQUxf
REFUQV9PRkZTRVQgICAgICAgICAxMDgKKyNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAg
ICAgMTEyCiAjZWxpZiBDUFUoU0g0KQogI2RlZmluZSBTWU1CT0xfU1RSSU5HKG5hbWUpICNuYW1l
CiAvKiBjb2RlIChyNCksIEpTU3RhY2sqIChyNSksIENhbGxGcmFtZSogKHI2KSwgdm9pZCogdW51
c2VkMSAocjcpLCB2b2lkKiB1bnVzZWQyKHNwKSwgSlNHbG9iYWxEYXRhIChzcCkqLwpAQCAtMzE4
LDYgKzMyMCw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAi
YWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIKKyIuZ2xv
YmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9MKGN0
aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoi
ICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkBAIC00NTEsNiArNDU2LDggQEAgYXNtICgKIFNZ
TUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwt
IiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAgICAgInN3ICAgICQzMSwi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQy
OSkiICJcbiIKKyAgICAic3cgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9T
NF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxOCwiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAi
c3cgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5
KSIgIlxuIgogICAgICJzdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mw
X09GRlNFVCkgIigkMjkpIiAiXG4iCkBAIC00NjcsMTIgKzQ3NCwxNyBAQCBTWU1CT0xfU1RSSU5H
KGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigk
MjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkp
IiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogIi5zZXQgcmVvcmRlciIgIlxuIgogIi5z
ZXQgbWFjcm8iICJcbiIKICIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiXG4i
CisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURFX1NZ
TUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVF
bmQpICI6IiAiXG4iCiApOwogCiBhc20gKApAQCAtNDg1LDggKzQ5Nyw4IEBAIGFzbSAoCiAiLmVu
dCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKIFNZTUJPTF9TVFJJ
TkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAjaWYgV1RGX01JUFNfUElDCi0gICAg
Imx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1BfT0ZGU0VUKSAiKCQy
OSkiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCisiLmNwbG9hZCAkMzEiICJcbiIKICAgICAibGEg
ICAgJDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKICIuc2V0IG5vbWFjcm8i
ICJcbiIKICAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKQEAgLTQ5
OCw2ICs1MTAsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxu
IgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09GRlNF
VCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAk
MTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4i
CisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAkMzEi
ICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5H
VEgpICJcbiIKQEAgLTUxOCw2ICs1MzIsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RD
YXVnaHQpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAk
MTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4i
CisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCiAg
ICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtODE1LDYgKzgzMSw4IEBAIEpJVFRodW5rczo6SklU
VGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICBBU1NFUlQoT0JKRUNUX09GRlNF
VE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJFU0VSVkVEX1MwX09G
RlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwg
cHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1Rf
T0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9PSBQUkVTRVJWRURf
UzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCBwcmVzZXJ2ZWRTMykgPT0gUFJFU0VSVkVEX1MzX09GRlNFVCk7CisgICAgQVNTRVJUKE9C
SkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzQpID09IFBSRVNF
UlZFRF9TNF9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5fQURE
UkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNr
RnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBzdGFj
aykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwpAQCAtMTEwNSw5ICsxMTIzLDkgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIFQgdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKEpJVFN0YWNr
RnJhbWUmIGppdFN0YWNrRnIKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMj
b3ApICJcbiIgXAogICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJcbiIg
XAogICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCi0gICAgICAgICJs
dyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkp
IiAiXG4iIFwKLSAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19S
RVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICIuc2V0IG1hY3Jv
IiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAgInN3ICAgICQz
MSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5
KSIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVu
a2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNldCBub21hY3JvIiAiXG4iIFwKICAgICAgICAg
Ii5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRfIyNv
cCkgIlxuIiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKaW5kZXggNmUzMTQxZS4u
NTY5YjE4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApAQCAtMjI2LDYgKzIy
Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMDsKICAgICAg
ICAgdm9pZCogcHJlc2VydmVkUzE7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAgICAg
ICB2b2lkKiBwcmVzZXJ2ZWRTMzsKKyAgICAgICAgdm9pZCogcHJlc2VydmVkUzQ7CiAgICAgICAg
IHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CiAKICAgICAgICAgUmV0dXJuQWRkcmVzc1B0
ciB0aHVua1JldHVybkFkZHJlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZGEyZDUxMC4uMTU3NTIxMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcu
aApAQCAtMzgsNiArMzgsNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12NyAwCiAjZGVmaW5l
IE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3cyAwCisjZGVm
aW5lIE9GRkxJTkVfQVNNX01JUFMgMAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkK
IApAQCAtNjcsNiArNjgsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNlbmRp
ZgogCisjaWYgQ1BVKE1JUFMpCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMQorI2Vsc2UKKyNk
ZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZW5kaWYKKwogI2VuZGlmIC8vICFFTkFCTEUoTExJ
TlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExMSw0ICsxMTgsMTcgQEAKICNk
ZWZpbmUgT0ZGTElORV9BU01fVkFMVUVfUFJPRklMRVIgMAogI2VuZGlmCiAKKyNpZiBDUFUoTUlQ
UykKKyNpZmRlZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgUyh4KSAjeAorI2RlZmluZSBTWCh4KSBT
KHgpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcpIFwKKyAgICAiLnNldCBub3Jlb3Jk
ZXJcbiIgXAorICAgICIuY3Bsb2FkICIgU1gocmVnKSAiXG4iIFwKKyAgICAiLnNldCByZW9yZGVy
XG4iCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVnKQorI2VuZGlmCisjZW5k
aWYKKwogI2VuZGlmIC8vIExMSW50T2ZmbGluZUFzbUNvbmZpZ19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggMDIyNjM3
ZC4uZjJiNzViNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTg3LDYgKzE4Nyw4IEBAIG1hY3JvIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQogICAgICAgICBtb3ZlIGxy
LCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBw
b3AgZGVzdGluYXRpb25SZWdpc3RlcgorICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBsciwg
ZGVzdGluYXRpb25SZWdpc3RlcgogICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKQEAg
LTIwMCw2ICsyMDIsOCBAQCBtYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihz
b3VyY2VSZWdpc3RlcikKICAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKICAgICBlbHNp
ZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKKyAgICBlbHNpZiBN
SVBTCisgICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCiAgICAgZWxzZQogICAgICAgICBl
cnJvcgogICAgIGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBkMDA3MmQ3Li42YjQ3ZWQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQpAQCAtMTEzLDYgKzExMywxMCBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24s
IGFyZzEsIGFyZzIpCiAgICAgICAgIHBva2UgYXJnMSwgMAogICAgICAgICBwb2tlIGFyZzIsIDEK
ICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBhcmcx
LCBhMAorICAgICAgICBtb3ZlIGFyZzIsIGExCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBl
bHNpZiBDX0xPT1AKICAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggZnVuY3Rpb24sIGFyZzEsIGFy
ZzIKICAgICBlbHNlCkBAIC0xMzQsNiArMTM4LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwg
YXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKICAgICAgICAgcG9rZSBhcmczLCAyCiAgICAgICAgIHBv
a2UgYXJnNCwgMwogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAg
ICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgbW92ZSBhcmcz
LCBhMgorICAgICAgICBtb3ZlIGFyZzQsIGEzCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBl
bHNpZiBDX0xPT1AKICAgICAgICAgZXJyb3IKICAgICBlbHNlCkBAIC0xNzU5LDYgKzE3NjksMjAg
QEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24p
CiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAgIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRTdGFj
a0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBlbHNpZiBNSVBTCisgICAgICAgIGxvYWRw
IEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgICAgICBzdG9yZXAgY2ZyLCBK
U0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92ZSB0MCwgdDIKKyAgICAg
ICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAgICAgICBzdG9yZXAgdDMs
IFJldHVyblBDW2Nmcl0KKyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAgICAgIGxvYWRpIENhbGxl
ZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9l
eGVjdXRhYmxlW3QxXSwgdDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIG1vdmUgdDAs
IGEwCisgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAg
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRT
dGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAg
bG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBj
ZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm12Ny5yYgppbmRleCBhYjA0OTZmLi42OWVjYjhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgpAQCAtMTc5LDcgKzE3OSw4IEBAIGNsYXNz
IFNlcXVlbmNlCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0Rv
dWJsZShyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0
ZXMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVz
KHJlc3VsdCwgMC4uMHhmZikKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRk
cmVzc2VzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVz
c2VzQ29tbW9uKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRk
cmVzc2VzU3BlY2lmaWMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3Rl
clJldXNlKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jh
cmllcyhyZXN1bHQsIDpncHIsIEFSTXY3X0VYVFJBX0dQUlMpCiAgICAgICAgIHJlc3VsdCA9IGFz
c2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMu
cmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCA3
OGU1NDU3Li5lZjkzNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9iYWNrZW5kcy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9i
YWNrZW5kcy5yYgpAQCAtMjUsNiArMjUsNyBAQCByZXF1aXJlICJjb25maWciCiByZXF1aXJlICJh
cm12NyIKIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIng4NiIKK3JlcXVpcmUgIm1pcHMiCiByZXF1
aXJlICJjbG9vcCIKIAogQkFDS0VORFMgPQpAQCAtMzIsNiArMzMsNyBAQCBCQUNLRU5EUyA9CiAg
ICAgICJYODYiLAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKKyAgICAgIk1JUFMiLAog
ICAgICAiQ19MT09QIgogICAgIF0KIApAQCAtNDUsNiArNDcsNyBAQCBXT1JLSU5HX0JBQ0tFTkRT
ID0KICAgICAgIlg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAorICAgICAiTUlQ
UyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggOGIyMzkwNy4uNTM0MjNkMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAt
MjY5LDYgKzI2OSwxNiBAQCBBUk12N19JTlNUUlVDVElPTlMgPQogICAgICAib3JpcyIKICAgICBd
CiAKK01JUFNfSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgIm1vdnoiLAorICAgICJtb3ZuIiwK
KyAgICAic2x0IiwKKyAgICAic2x0dSIsCisgICAgInBpY2hkciIsCisgICAgInBpY2hkcnJhIgor
ICAgIF0KKwogQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAiY2xvb3BDcmFzaCIsICAg
ICAgICAgICAjIG5vIG9wZXJhbmRzCkBAIC0yODUsNyArMjk1LDcgQEAgQ1hYX0lOU1RSVUNUSU9O
UyA9CiAgICAgICJjbG9vcERvIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAK
LUlOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBB
Uk12N19JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCitJTlNUUlVDVElPTlMgPSBNQUNS
T19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsg
TUlQU19JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRF
Uk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlc
XFonKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBz
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWRlZGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpAQCAtMCwwICsxLDg2OCBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTIgTUlQUyBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNSVBTIFRFQ0hOT0xPR0lF
UywgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIE1JUFMgVEVDSE5PTE9HSUVT
LCBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworcmVxdWly
ZSAncmlzYycKKworY2xhc3MgQXNzZW1ibGVyCisgICAgZGVmIHB1dFN0cihzdHIpCisgICAgICAg
IEBvdXRwLnB1dHMgc3RyCisgICAgZW5kCitlbmQKKworY2xhc3MgTm9kZQorICAgIGRlZiBtaXBz
U2luZ2xlSGkKKyAgICAgICAgZG91YmxlT3BlcmFuZCA9IG1pcHNPcGVyYW5kCisgICAgICAgIHJh
aXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVP
cGVyYW5kID1+IC9eXCRmLworICAgICAgICAiJGYiICsgKCR+LnBvc3RfbWF0Y2gudG9faSArIDEp
LnRvX3MKKyAgICBlbmQKKyAgICBkZWYgbWlwc1NpbmdsZUxvCisgICAgICAgIGRvdWJsZU9wZXJh
bmQgPSBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2Rv
dWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXlwkZi8KKyAgICAgICAgZG91
YmxlT3BlcmFuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hp
bGRyZW4KKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAg
IGRlZiBkdW1wCisgICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAgICBkZWYgcmVnaXN0ZXI/Cisg
ICAgICAgIHRydWUKKyAgICBlbmQKK2VuZAorCitNSVBTX1RFTVBfR1BSUyA9IFtTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkdDUiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ2IiksIFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiR0NyIpLAorICAgICAgICAgICAgICAgICAgICBTcGVjaWFsUmVnaXN0ZXIubmV3
KCIkdDgiKV0KK01JUFNfVEVNUF9GUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRmMTYiKV0K
K01JUFNfU0NSQVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZjE4IikKKworZGVmIG1p
cHNNb3ZlSW1tZWRpYXRlKHZhbHVlLCByZWdpc3RlcikKKyAgICBpZiB2YWx1ZSA9PSAwCisgICAg
ICAgICRhc20ucHV0cyAiYWRkICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9LCAkemVybywgJHplcm8i
CisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImxpICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9
LCAje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYg
bWlwc09wZXJhbmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdoZW4gImEwIgorICAgICAg
ICAgICAgIiRhMCIKKyAgICAgICAgd2hlbiAiYTEiCisgICAgICAgICAgICAiJGExIgorICAgICAg
ICB3aGVuICJyMCIsICJ0MCIKKyAgICAgICAgICAgICIkdjAiCisgICAgICAgIHdoZW4gInIxIiwg
InQxIgorICAgICAgICAgICAgIiR2MSIKKyAgICAgICAgd2hlbiAidDIiCisgICAgICAgICAgICAi
JHQyIgorICAgICAgICB3aGVuICJ0MyIKKyAgICAgICAgICAgICIkczMiCisgICAgICAgIHdoZW4g
InQ0IiAgICMgUEMgcmVnIGluIGxsaW50CisgICAgICAgICAgICAiJHMyIgorICAgICAgICB3aGVu
ICJ0NSIKKyAgICAgICAgICAgICIkdDUiCisgICAgICAgIHdoZW4gInQ2IgorICAgICAgICAgICAg
IiR0NiIKKyAgICAgICAgd2hlbiAidDciCisgICAgICAgICAgICAiJHQ3IgorICAgICAgICB3aGVu
ICJ0OCIKKyAgICAgICAgICAgICIkdDgiCisgICAgICAgIHdoZW4gImNmciIKKyAgICAgICAgICAg
ICIkczAiCisgICAgICAgIHdoZW4gImxyIgorICAgICAgICAgICAgIiRyYSIKKyAgICAgICAgd2hl
biAic3AiCisgICAgICAgICAgICAiJHNwIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlz
ZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIE1JUFMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIK
KyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgRlBSZWdpc3RlcklECisgICAgZGVm
IG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3aGVuICJmdDAiLCAiZnIi
CisgICAgICAgICAgICAiJGYwIgorICAgICAgICB3aGVuICJmdDEiCisgICAgICAgICAgICAiJGYy
IgorICAgICAgICB3aGVuICJmdDIiCisgICAgICAgICAgICAiJGY0IgorICAgICAgICB3aGVuICJm
dDMiCisgICAgICAgICAgICAiJGY2IgorICAgICAgICB3aGVuICJmdDQiCisgICAgICAgICAgICAi
JGY4IgorICAgICAgICB3aGVuICJmdDUiCisgICAgICAgICAgICAiJGYxMCIKKyAgICAgICAgd2hl
biAiZmEwIgorICAgICAgICAgICAgIiRmMTIiCisgICAgICAgIHdoZW4gImZhMSIKKyAgICAgICAg
ICAgICIkZjE0IgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVy
ICN7bmFtZX0gZm9yIE1JUFMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisg
ICAgZW5kCitlbmQKKworY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAg
ICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVlfSBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IiBpZiB2YWx1ZSA8IC0weDdmZmYgb3IgdmFsdWUgPiAweDdmZmYKKyAgICAgICAgIiN7dmFs
dWV9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgbWlwc09wZXJhbmQK
KyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zm
c2V0LnZhbHVlIDwgLTB4N2ZmZiBvciBvZmZzZXQudmFsdWUgPiAweDdmZmYKKyAgICAgICAgIiN7
b2Zmc2V0LnZhbHVlfSgje2Jhc2UubWlwc09wZXJhbmR9KSIKKyAgICBlbmQKK2VuZAorCitjbGFz
cyBBYnNvbHV0ZUFkZHJlc3MKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIlVu
Y29udmVydGVkIGFic29sdXRlIGFkZHJlc3MgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBl
bmQKK2VuZAorCisjCisjIExvd2VyICdhbmQnIG1hc2tlZCBicmFuY2hlcworIworCitkZWYgbG93
ZXJNSVBTQ29uZEJyYW5jaChsaXN0LCBjb25kT3AsIG5vZGUpCisgICAgaWYgbm9kZS5vcGVyYW5k
cy5zaXplID09IDIKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kT3AsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCBTcGVjaWFsUmVnaXN0ZXIu
bmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWy0xXV0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikKKyAgICBlbHNpZiBub2RlLm9wZXJhbmRzLnNpemUg
PT0gMworICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAg
ICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYW5kaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgICAgIGxpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZE9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG1wLCBT
cGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgZWxz
ZQorICAgICAgICByYWlzZSAiRXhwZWN0ZWQgMiBvciAzIG9wZXJhbmRzIGJ1dCBnb3QgI3tub2Rl
Lm9wZXJhbmRzLnNpemV9IGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2Vu
ZAorCisjCisjIExvd2VyaW5nIG9mIGJyYW5jaCBvcHMuIEZvciBleGFtcGxlOgorIworIyBiYWRk
aXogZm9vLCBiYXIsIGJhegorIworIyB3aWxsIGJlY29tZToKKyMKKyMgYWRkaSBmb28sIGJhcgor
IyBieiBiYXoKKyMKKworZGVmIG1pcHNMb3dlclNpbXBsZUJyYW5jaE9wcyhsaXN0KQorICAgIG5l
d0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlm
IG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFu
bm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4g
L15iKGFkZGl8c3ViaXxvcml8YWRkcCkvCisgICAgICAgICAgICAgICAgb3AgPSAkMQorICAgICAg
ICAgICAgICAgIGJjID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIGJyYW5jaCA9ICJi
IiArIGJjIAorCisgICAgICAgICAgICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgIHdoZW4g
ImFkZGkiLCAiYWRkcCIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAiYWRkaSIKKyAgICAgICAg
ICAgICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJzdWJpIgorICAg
ICAgICAgICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAib3JpIgor
ICAgICAgICAgICAgICAgIGVuZAorCisgICAgICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiR6ZXJvIikKKyAgICAgICAgICAgICAgICBpZiBiYyA9PSAibyIKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgICAgICB3aGVuICJhZGRpIgorICAg
ICAgICAgICAgICAgICAgICAgICAgIyAgYWRkdSAkczAsICRzMSwgJHMyCisgICAgICAgICAgICAg
ICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAgICAgICAg
IyAgYmx0ICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAj
ICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYmx0ICR0MCwg
JHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG92ZXJmbG93Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAgICAgdHIgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRt
cCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbm9GbG93ID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vZmxvdyIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBub0Zsb3dSZWYgPSBMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhub2RlLmNvZGVPcmln
aW4sIG5vRmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJh
bmRzWzFdLCB0cl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW25vZGUub3BlcmFu
ZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwg
emVybywgbm9GbG93UmVmXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbdHIsIG5vZGUub3BlcmFuZHNb
MF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywgbm9kZS5vcGVyYW5kc1sy
XV0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vRmxvdworICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAibW92ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAgICAgICAgICAgIHdo
ZW4gInN1YmkiCisgICAgICAgICAgICAgICAgICAgICAgICAjICBzdWJ1ICRzMCwgJHMxLCAkczIK
KyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMSwgJHMyCisgICAgICAgICAg
ICAgICAgICAgICAgICAjICBiZ2UgJHQwLCAkemVybywgbm8gb3ZlcmZsb3cKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMCwgJHMxCisgICAgICAgICAgICAgICAgICAgICAg
ICAjICBibHQgJHQwLCAkemVybywgb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMg
bm8gb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAg
ICAgICAgICAgICAgICAgICB6ZXJvID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbm9GbG93ID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vZmxvdyIp
CisgICAgICAgICAgICAgICAgICAgICAgICBub0Zsb3dSZWYgPSBMb2NhbExhYmVsUmVmZXJlbmNl
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vRmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJh
bmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0cl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4
b3JpIiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJiaWd0ZXEiLCBbdG1wLCB6ZXJvLCBub0Zsb3dSZWZdKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIs
IFt0ciwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpbHQiLCBbdG1wLCB6
ZXJvLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9GbG93CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW3RyLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAg
ICAgICAgICAgICAgICAgICAgd2hlbiAib3JpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyBu
byBvdndlcmZsb3cgYXQgb3JpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLjFdLCBh
bm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMV0uaXNfYT8gQWRkcmVzcwor
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkciA9IG5vZGUub3BlcmFuZHNbMV0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJsb2FkcCIsIFthZGRyLCB0cl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBb
bm9kZS5vcGVyYW5kc1swXSwgdHJdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVwIiwgW3RyLCBhZGRyXSkK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdHIgPSBu
b2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5u
b3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgYnJhbmNoLCBbdHIsIHpl
cm8sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAg
IHdoZW4gImJpYSIsICJicGEiLCAiYmJhIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXco
bm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29k
ZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3Bl
cmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF1dLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJueiIsIFt0bXAs
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAg
ICAgICAgd2hlbiAiYmlhZXEiLCAiYnBhZXEiLCAiYmJhZXEiCisgICAgICAgICAgICAgICAgdG1w
ID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgY29tcCA9
IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8gInNsdHViIiA6ICJzbHR1IgorICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3Rt
cCwgbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXV0sIGFubm90YXRpb24pCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
YnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJd
XSkKKyAgICAgICAgICAgIHdoZW4gImJpYiIsICJicGIiLCAiYmJiIgorICAgICAgICAgICAgICAg
IHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNv
bXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAs
IFt0bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBhbm5vdGF0aW9uKQor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgImJueiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFu
ZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYmliZXEiLCAiYnBiZXEiLCAiYmJiZXEiCisgICAg
ICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAg
ICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8gInNsdHViIiA6ICJzbHR1
IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXV0sIGFu
bm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAiYnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBu
b2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJ0aXoiLCAiYnRweiIsICJidGJ6
IgorICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJ6Iiwgbm9k
ZSkKKyAgICAgICAgICAgIHdoZW4gImJ0aW56IiwgImJ0cG56IiwgImJ0Ym56IgorICAgICAgICAg
ICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJueiIsIG5vZGUpCisgICAgICAg
ICAgICB3aGVuICJidGlvIiwgImJ0cG8iLCAiYnRibyIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IG5vZGUKKyAgICAgICAgICAgIHdoZW4gImJ0aXMiLCAiYnRwcyIsICJidGJzIgorICAgICAg
ICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJzIiwgbm9kZSkKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAg
IGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAg
ZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxpemF0aW9uIG9mIGxv
d2VyaW5nIG9mIG1hbGZvcm1lZCBCYXNlSW5kZXggYWRkcmVzc2VzLgorIworCitjbGFzcyBCYXNl
SW5kZXgKKyAgICBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzUmVjdXJzZShsaXN0LCBu
b2RlLCAmYmxvY2spCisgICAgICAgIGlmIHNjYWxlU2hpZnQgPT0gMAorICAgICAgICAgICAgdG1w
MCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIGluZGV4LCB0bXAwXSkKKyAgICAg
ICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcDAsIEltbWVkaWF0ZS5uZXcoY29kZU9y
aWdpbiwgb2Zmc2V0LnZhbHVlKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRtcDAgPSBU
bXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAibHNoaWZ0aSIsIFtpbmRleCwgSW1tZWRpYXRlLm5ldyhjb2RlT3Jp
Z2luLCBzY2FsZVNoaWZ0KSwgdG1wMF0pOworICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcoY29kZU9yaWdpbiwgImFkZHAiLCBbYmFzZSwgdG1wMF0pCisgICAgICAgICAgICBBZGRy
ZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIG9mZnNl
dC52YWx1ZSkpOworICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisjIExvd2VyaW5nIG9m
IG1pc3BsYWNlZCBpbW1lZGlhdGVzIG9mIE1JUFMgc3BlY2lmaWMgaW5zdHJ1Y3Rpb25zLiBGb3Ig
ZXhhbXBsZToKKyMKKyMgc2x0dSByZWcsIDQsIDIKKyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIG1v
dmUgNCwgdG1wCisjIHNsdHUgcmVnLCB0bXAsIDIKKyMKKworZGVmIG1pcHNMb3dlck1pc3BsYWNl
ZEltbWVkaWF0ZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAg
ICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJzbHQiLCAic2x0dSIsICJz
bHRiIiwgInNsdHViIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMV0uaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3Jp
Z2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMV0sIHRtcF0sIG5vZGUu
YW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIHRtcCwgbm9kZS5vcGVy
YW5kc1syXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9
CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgU3BlY2lhbGl6YXRpb24gb2YgbG93ZXJpbmcgb2Yg
bWlzcGxhY2VkIGFkZHJlc3Nlcy4KKyMKKworZGVmIG1pcHNMb3dlck1pc3BsYWNlZEFkZHJlc3Nl
c1NwZWNpZmljKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAg
ICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAg
ICAgcG9zdEluc3RydWN0aW9ucyA9IFtdCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5h
bm5vdGF0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVu
ICJqbXAiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5hZGRyZXNzPworICAg
ICAgICAgICAgICAgICAgICB0bXAgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkcmEiKQorICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLm9wZXJhbmRzWzBd
LmNvZGVPcmlnaW4sICJsb2FkaSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5v
ZGUub3Bjb2RlLCBbdG1wXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyaXNjQXNSZWdpc3Rl
cihuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzWzBdLCAicCIsIGZhbHNl
KV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVuICJjYWxsIgorICAgICAg
ICAgICAgICAgIHJlc3RvcmVHUCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmIG5vZGUub3Bl
cmFuZHNbMF0uYWRkcmVzcz8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lz
dGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibG9hZHAiLCBbbm9kZS5vcGVyYW5k
c1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdG9yZUdQID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICBlbHNpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNlCisg
ICAgICAgICAgICAgICAgICAgIHRtcCA9IG5vZGUub3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAg
ICAgICAgcmVzdG9yZUdQID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNpZiBub2RlLm9wZXJh
bmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgICAgICB0bXAgPSBTcGVjaWFsUmVnaXN0
ZXIubmV3KCIkdDkiKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLm9wZXJhbmRzWzBdLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNb
MF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRzWzBd
CisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAgICAg
ICAgICAgaWYgcmVzdG9yZUdQCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm1vdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHM0IiksIFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiRncCIpXSkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4g
InNsdCIsICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMsICJpIikpCisg
ICAgICAgICAgICB3aGVuICJzbHR1YiIsICJzbHRiIgorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUu
b3BlcmFuZHMsICJiIikpCisgICAgICAgICAgICB3aGVuICJieiIsICJibnoiLCAiYnMiLCAiYm8i
CisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bj
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2NBc1Jl
Z2lzdGVycyhuZXdMaXN0LCBbXSwgbm9kZS5vcGVyYW5kcywgImkiKSkKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAor
ZW5kCisKKyMKKyMgTG93ZXJpbmcgY29tcGFyZXMgYW5kIHRlc3RzLgorIworCitkZWYgbWlwc0xv
d2VyQ29tcGFyZVRlbXBsYXRlKGxpc3QsIG5vZGUsIG9wQ21wLCBvcE1vdikKKyAgICB0bXAwID0g
VG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgdG1wMSA9IFRtcC5uZXcobm9kZS5j
b2RlT3JpZ2luLCA6Z3ByKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhuaWwsIDApLCBub2RlLm9wZXJhbmRzWzJdXSkK
KyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wQ21wLCBbbm9k
ZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdG1wMF0pCisgICAgbGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtJbW1lZGlhdGUubmV3KG5pbCwg
MSksIHRtcDFdKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
b3BNb3YsIFtub2RlLm9wZXJhbmRzWzJdLCB0bXAxLCB0bXAwXSkKK2VuZAorCitkZWYgbWlwc0xv
d2VyQ29tcGFyZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAg
ICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJjaWVxIiwgImNwZXEiLCAi
Y2JlcSIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwg
bm9kZSwgInN1YnAiLCAibW92eiIpCisgICAgICAgICAgICB3aGVuICJjaW5lcSIsICJjcG5lcSIs
ICJjYm5lcSIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlz
dCwgbm9kZSwgInN1YnAiLCAibW92biIpCisgICAgICAgICAgICB3aGVuICJ0aXoiLCAidGJ6Iiwg
InRweiIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwg
bm9kZSwgImFuZHAiLCAibW92eiIpCisgICAgICAgICAgICB3aGVuICJ0aW56IiwgInRibnoiLCAi
dHBueiIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxhdGUobmV3TGlzdCwg
bm9kZSwgImFuZHAiLCAibW92biIpCisgICAgICAgICAgICB3aGVuICJ0aW8iLCAidGJvIiwgInRw
byIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikK
KyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJhbmRwIiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAg
ICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic2x0
IiwgW25vZGUub3BlcmFuZHNbMl0sIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIHRtcF0p
CisgICAgICAgICAgICB3aGVuICJ0aXMiLCAidGJzIiwgInRwcyIKKyAgICAgICAgICAgICAgICB0
bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBsaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJhbmRwIiwgW25vZGUub3BlcmFu
ZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic2x0IiwgW25vZGUub3BlcmFuZHNbMl0s
IHRtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKV0pCisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAg
ICBuZXdMaXN0CitlbmQKKworIworIyBMZWEgc3VwcG9ydC4KKyMKKworY2xhc3MgQWRkcmVzcwor
ICAgIGRlZiBtaXBzRW1pdExlYShkZXN0aW5hdGlvbikKKyAgICAgICAgaWYgZGVzdGluYXRpb24g
PT0gYmFzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNP
cGVyYW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNt
LnB1dHMgImFkZGl1ICN7ZGVzdGluYXRpb24ubWlwc09wZXJhbmR9LCAje2Jhc2UubWlwc09wZXJh
bmR9LCAje29mZnNldC52YWx1ZX0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKKyMKKyMg
QWRkIFBJQyBjb21wYXRpYmxlIGhlYWRlciBjb2RlIHRvIHByb2xvZ3VlL2VudHJ5IHJ1dGlucy4K
KyMKKworZGVmIG1pcHNBZGRQSUNDb2RlKGxpc3QpCisgICAgbXlMaXN0ID0gW10KKyAgICBsaXN0
LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBteUxpc3QgPDwgbm9kZQorICAgICAg
ICBpZiBub2RlLmlzX2E/IExhYmVsCisgICAgICAgICAgICBpZiAvX3Byb2xvZ3VlJC8ubWF0Y2go
bm9kZS5uYW1lKSB8fCAvXl9sbGludF9mdW5jdGlvbl8vLm1hdGNoKG5vZGUubmFtZSkKKyAgICAg
ICAgICAgICAgICAjIEZ1bmN0aW9ucyBjYWxsZWQgZnJvbSB0cmFtcG9saW5lL0pJVCBjb2Rlcy4K
KyAgICAgICAgICAgICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgInBpY2hkciIsIFtdKQorICAgICAgICAgICAgZWxzaWYgL19sbGludF9vcF9jYXRjaC8ubWF0
Y2gobm9kZS5uYW1lKQorICAgICAgICAgICAgICAgICMgRXhjZXB0aW9uIGNhY3RjaGVyIGVudHJ5
IHBvaW50IGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgIG15TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAicGljaGRycmEiLCBbXSkKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbmQKKyAgICB9CisgICAgbXlMaXN0CitlbmQKKworIworIyBBY3R1YWwgbG93ZXJpbmcg
Y29kZSBmb2xsb3dzLgorIworCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2RpZmllZExp
c3RNSVBTCisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAgICAgICAgIyBWZXJpZnkgdGhhdCB3
ZSB3aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAgICAgICByZXN1bHQu
ZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNf
YT8gSW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMYWJlbCBv
cgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhw
ZWN0ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIgCisgICAgICAgICAg
ICBlbmQKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1pcHNBZGRQSUNDb2RlKHJlc3Vs
dCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3BzKHJlc3VsdCkKKyAg
ICAgICAgcmVzdWx0ID0gcmlzY0xvd2VySGFyZEJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJl
c3VsdCA9IHJpc2NMb3dlclNoaWZ0T3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xv
d2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgeworICAgICAgICAgICAgfCBub2RlLCBhZGRy
ZXNzIHwKKyAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAg
ICAgICgtMHhmZmZmLi4weGZmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICB9CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJs
ZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMo
cmVzdWx0KQorICAgICAgICByZXN1bHQgPSBtaXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJl
c3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1
bHQsIC0weGZmZmYuLjB4ZmZmZikKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2Vk
QWRkcmVzc2VzQ29tbW9uKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxh
Y2VkQWRkcmVzc2VzU3BlY2lmaWMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJS
ZWdpc3RlclJldXNlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyQ29tcGFyZXMo
cmVzdWx0KQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJl
c3VsdCwgOmdwciwgTUlQU19URU1QX0dQUlMpCisgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lz
dGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBNSVBTX1RFTVBfRlBSUykKKworICAgICAg
ICByZXR1cm4gcmVzdWx0CisgICAgZW5kCitlbmQKKworZGVmIG1pcHNPcGVyYW5kcyhvcGVyYW5k
cykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYubWlwc09wZXJhbmR9LmpvaW4oIiwgIikKK2VuZAor
CitkZWYgbWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBtaXBzT3BlcmFuZHMoW29w
ZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tMl0pCitlbmQKKworZGVmIGdldE1JUFNPcGNvZGUo
b3Bjb2RlLCBzdWZmaXgpCisKK2VuZAorCitkZWYgZW1pdE1JUFNDb21wYWN0KG9wY29kZSwgb3Bj
b2RlaSwgb3BlcmFuZHMpCisgICAgcG9zdGZpeCA9ICIiCisgICAgaWYgb3Bjb2RlID09ICJzdWIi
CisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgb3Bj
b2RlID0gImFkZCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdID0gSW1tZWRpYXRlLm5ldyhvcGVy
YW5kc1swXS5jb2RlT3JpZ2luLCAtMSAqIG9wZXJhbmRzWzBdLnZhbHVlKQorICAgICAgICBlbHNp
ZiBvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQi
CisgICAgICAgICAgICBvcGVyYW5kc1sxXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMV0uY29k
ZU9yaWdpbiwgLTEgKiBvcGVyYW5kc1sxXS52YWx1ZSkKKyAgICAgICAgZW5kCisgICAgICAgIHBv
c3RmaXggPSAidSIKKyAgICBlbHNpZiBvcGNvZGUgPT0gImFkZCIKKyAgICAgICAgcG9zdGZpeCA9
ICJ1IgorICAgIGVuZAorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICBpZiBvcGVy
YW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9
aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNb
MV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bv
c3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRh
c20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFu
ZHMuc2l6ZSA9PSAyCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8K
KyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNt
LnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitk
ZWYgZW1pdE1JUFNTaGlmdENvbXBhY3Qob3Bjb2RlLCBvcGVyYW5kcykKKyAgICBpZiBvcGVyYW5k
cy5zaXplID09IDMKKyAgICAgICAgaWYgKG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZSkKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9diAje21pcHNGbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlz
ZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGlmIG9wZXJhbmRzWzBdLnJlZ2lz
dGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX12ICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBl
bWl0TUlQUyhvcGNvZGUsIG9wZXJhbmRzKQorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAg
ICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICBlbHNlCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDIKKyAg
ICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAg
ICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFNEb3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBuZWcs
IG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAiYy4je2JyYW5jaE9wY29kZX0uZCAje21pcHNPcGVy
YW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgIGlmICghbmVnKQorICAgICAgICAkYXNtLnB1dHMg
ImJjMXQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1
dHMgImJjMWYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZW5kCitlbmQKKworY2xhc3Mg
SW5zdHJ1Y3Rpb24KKyAgICBkZWYgbG93ZXJNSVBTCisgICAgICAgICRhc20uY29tbWVudCBjb2Rl
T3JpZ2luU3RyaW5nCisgICAgICAgIGNhc2Ugb3Bjb2RlCisgICAgICAgIHdoZW4gImFkZGkiLCAi
YWRkcCIsICJhZGRpcyIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3Bl
cmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9w
ZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5k
c1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS52YWx1ZSA9PSAw
ICNhbmQgc3VmZml4LmVtcHR5PworICAgICAgICAgICAgICAgICAgICB1bmxlc3Mgb3BlcmFuZHNb
MV0gPT0gb3BlcmFuZHNbMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92
ZSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0i
CisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHMuc2l6ZSA9PSAz
IGFuZCBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mg
b3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJh
bmRzWzJdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAje21pcHNG
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICAgICAg
dW5sZXNzIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXQorICAgICAgICAgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGR1ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAgICAgZW5kCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgorICAgICAgICAgICAgZW1p
dE1JUFNDb21wYWN0KCJhbmQiLCAiYW5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm9yaSIs
ICJvcnAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoIm9yIiwgIm9yciIsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJvcmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJvciIs
ICJvcnJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInhvcmkiLCAieG9ycCIKKyAgICAgICAg
ICAgIGVtaXRNSVBTQ29tcGFjdCgieG9yIiwgImVvciIsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJsc2hpZnRpIiwgImxzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgi
c2xsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInJzaGlmdGkiLCAicnNoaWZ0cCIKKyAgICAg
ICAgICAgIGVtaXRNSVBTU2hpZnRDb21wYWN0KCJzcmEiLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAidXJzaGlmdGkiLCAidXJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFj
dCgic3JsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKKyAgICAgICAg
ICAgIGVtaXRNSVBTKCJtdWwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3ViaSIsICJzdWJw
IiwgInN1YmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJzdWIiLCAic3VicyIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3AiCisgICAgICAgICAgICAkYXNtLnB1
dHMgIm5lZ3UgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJub3RpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJub3Ig
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAk
emVybyIKKyAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRwIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsdyAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3cgI3tt
aXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGIiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImxidSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAibG9hZGJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYiAje21pcHNGbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmViIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJzYiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJs
b2FkaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGh1ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkaHMiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxoICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9y
ZWgiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNodiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9
IgorICAgICAgICB3aGVuICJsb2FkZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRjMSAje21p
cHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVkIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzZGMxICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImFkZGQiCisgICAgICAgICAgICBlbWl0TUlQUygiYWRkLmQiLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiZGl2ZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJkaXYuZCIsIG9wZXJh
bmRzKQorICAgICAgICB3aGVuICJzdWJkIgorICAgICAgICAgICAgZW1pdE1JUFMoInN1Yi5kIiwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGQiCisgICAgICAgICAgICBlbWl0TUlQUygibXVs
LmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3FydGQiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInNxcnQuZCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAiY2kyZCIKKyAgICAgICAgICAgIHJhaXNlICJpbnZhbGlkIG9wcyBvZiAje3NlbGYuaW5zcGVj
dH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzWzFdLmlzX2E/IEZQUmVn
aXN0ZXJJRCBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAkYXNtLnB1dHMg
Im10YzEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiYmRlcSIK
KyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmRuZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgi
dWVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3QiCisgICAgICAgICAgICBl
bWl0TUlQU0RvdWJsZUJyYW5jaCgidWxlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
ImJkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bHQiLCB0cnVlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdCIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJvbHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcSIKKyAg
ICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbGUiLCBmYWxzZSwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJkZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1
ZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxdW4iCisgICAgICAgICAg
ICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAiYmRndHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9sZSIsIHRydWUs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBT
RG91YmxlQnJhbmNoKCJvbHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVu
IgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsdCIsIGZhbHNlLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmRsdGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJy
YW5jaCgidWxlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJidGQyaSIKKyAgICAg
ICAgICAgICMgRklYTUU6IG1heSBiZSBhIGdvb2QgaWRlYSB0byBqdXN0IGdldCByaWQgb2YgdGhp
cyBpbnN0cnVjdGlvbiwgc2luY2UgdGhlIGludGVycHJldGVyCisgICAgICAgICAgICAjIGN1cnJl
bnRseSBkb2VzIG5vdCB1c2UgaXQuCisgICAgICAgICAgICByYWlzZSAiTUlQUyBkb2VzIG5vdCBz
dXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIKKyAgICAgICAgd2hlbiAidGQy
aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlw
c1NpbmdsZUxvfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQ
Ui5taXBzU2luZ2xlTG99IgorICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSwgI3tvcGVyYW5k
c1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzT3BlcmFu
ZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAgZW1pdE1J
UFNEb3VibGVCcmFuY2goImVxIiwgdHJ1ZSwgW01JUFNfU0NSQVRDSF9GUFIsIG9wZXJhbmRzWzBd
LCBvcGVyYW5kc1syXV0pCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgJHplcm8sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3
aGVuICJtb3ZkeiIKKyAgICAgICAgICAgICMgRklYTUU6IGVpdGhlciBzdXBwb3J0IHRoaXMgb3Ig
cmVtb3ZlIGl0LgorICAgICAgICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlz
IG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInBvcCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sIDAoJHNwKSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgJHNwLCAkc3AsIDQiCisgICAgICAgIHdoZW4gInB1
c2giCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRzcCwgJHNwLCAtNCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAic3cgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sIDAoJHNwKSIKKyAg
ICAgICAgd2hlbiAibW92ZSIsICJzeGkycCIsICJ6eGkycCIKKyAgICAgICAgICAgIGlmIG9wZXJh
bmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIG1pcHNNb3ZlSW1tZWRpYXRl
KG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibm9wIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJub3AiCisgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJiZXEgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tv
cGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbmVxIiwgImJwbmVxIiwgImJi
bmVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJibmUgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNb
MC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpZ3QiLCAi
YnBndCIsICJiYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3ttaXBzT3BlcmFuZHMo
b3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4g
ImJpZ3RlcSIsICJicGd0ZXEiLCAiYmJndGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ2Ug
I3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0i
CisgICAgICAgIHdoZW4gImJpbHQiLCAiYnBsdCIsICJiYmx0IgorICAgICAgICAgICAgJGFzbS5w
dXRzICJibHQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5h
c21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbHRlcSIsICJicGx0ZXEiLCAiYmJsdGVxIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJibGUgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwg
I3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAg
IGlmIG9wZXJhbmRzWzBdLmxhYmVsPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAiaiAje29w
ZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgImpyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgZW5k
CisgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8K
KyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImphbCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImphbHIgI3tvcGVy
YW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYnJl
YWsiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJyZWFrIgorICAgICAgICB3aGVuICJyZXQiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImpyICRyYSIKKyAgICAgICAgd2hlbiAiY2lhIiwgImNwYSIs
ICJjYmEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSIKKyAgICAgICAgd2hlbiAiY2lhZXEiLCAiY3BhZXEiLCAiY2JhZXEiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAg
d2hlbiAiY2liIiwgImNwYiIsICJjYmIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tv
cGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2liZXEiLCAiY3BiZXEiLCAi
Y2JiZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVy
YW5kfSwgMSIKKyAgICAgICAgd2hlbiAiY2lndCIsICJjcGd0IiwgImNiZ3QiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVu
ICJjaWd0ZXEiLCAiY3BndGVxIiwgImNiZ3RlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkg
I3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpbHQiLCAiY3Bs
dCIsICJjYmx0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAxIgorICAg
ICAgICB3aGVuICJwZWVrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9KCRzcCkiCisgICAgICAgIHdo
ZW4gInBva2UiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlICogNH0oJHNwKSIKKyAgICAgICAgd2hlbiAiZmlp
MmQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
bXRjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzU2luZ2xl
SGl9IgorICAgICAgICB3aGVuICJmZDJpaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzU2luZ2xlTG99Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNTaW5nbGVIaX0iCisgICAgICAgIHdoZW4gImJvIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJiZ3QgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAi
YnMiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJsdCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJieiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sy
XS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJueiIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Ym5lICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImxlYWkiLCAibGVhcCIK
KyAgICAgICAgICAgIG9wZXJhbmRzWzBdLm1pcHNFbWl0TGVhKG9wZXJhbmRzWzFdKQorICAgICAg
ICB3aGVuICJzbXVsbGkiCisgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0CisgICAgICAgICAgICAkYXNtLnB1dHMgIm11bHQg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtZmxvICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtZmhpICN7b3BlcmFuZHNbM10ubWlwc09wZXJhbmR9Igor
ICAgICAgICB3aGVuICJtb3Z6IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z6ICN7b3BlcmFu
ZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm1vdm4iCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdm4gI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0
IiwgInNsdGIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJzbHR1IiwgInNsdHViIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzbHR1ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInBpY2hk
ciIKKyAgICAgICAgICAgICRhc20ucHV0U3RyKCJPRkZMSU5FX0FTTV9DUExPQUQoJDI1KSIpCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgJHM0LCAkZ3AiCisgICAgICAgIHdoZW4gInBpY2hk
cnJhIgorICAgICAgICAgICAgJGFzbS5wdXRTdHIoIk9GRkxJTkVfQVNNX0NQTE9BRCgkMzEpIikK
KyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAkczQsICRncCIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgcmFpc2UgIlVuaGFuZGxlZCBvcGNvZGUgI3tvcGNvZGV9IGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vcmlzYy5yYgppbmRleCA0NGI0ZGJkLi40OTFhM2NjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTYzLDEwICs2Myw2IEBAIGRlZiByaXNj
TG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2Rl
Lm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW25vZGUub3BlcmFuZHNb
LTFdXSkKLSAgICAgICAgICAgIHdoZW4gJ2JtdWxpcycsICdibXVseicsICdibXVsbnonCi0gICAg
ICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAotICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9w
ZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5v
cGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVuZApAQCAtOTMsMTIgKzg5
LDIyIEBAIGRlZiByaXNjTG93ZXJIYXJkQnJhbmNoT3BzKGxpc3QpCiAgICAgbmV3TGlzdCA9IFtd
CiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKLSAgICAgICAgaWYgbm9kZS5pc19h
PyBJbnN0cnVjdGlvbiBhbmQgbm9kZS5vcGNvZGUgPT0gImJtdWxpbyIKLSAgICAgICAgICAgIHRt
cDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIHRtcDIgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtub2RlLm9wZXJhbmRzWzBd
LCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAxXSwgbm9kZS5hbm5vdGF0
aW9uKQotICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIDMxKSwgdG1wMl0pCi0gICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRz
Wy0xXV0pCisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGFu
bm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUK
KyAgICAgICAgICAgIHdoZW4gICJibXVsaW8iCisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1swXSwg
bm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5ub3RhdGlv
bikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1lZGlhdGUubmV3KG5vZGUu
Y29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9w
ZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3aGVuIC9eYm11bGkvCisgICAgICAgICAgICAgICAg
Y29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0y
XSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5vcGVyYW5kc1stMl0s
IG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgZW5kCkBAIC00NDcsNyArNDUzLDcgQEAgZGVmIHJp
c2NBc1JlZ2lzdGVycyhwcmVMaXN0LCBwb3N0TGlzdCwgb3BlcmFuZHMsIHN1ZmZpeCkKICAgICBu
ZXdPcGVyYW5kcwogZW5kCiAKLWRlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkK
K2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24obGlzdCkKICAgICBuZXdMaXN0
ID0gW10KICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfApAQCAtNDgzLDYgKzQ4OSwy
NSBAQCBkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBv
c3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJkIiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbikKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisK
K2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xp
c3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQor
ICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAiam1wIiwgImNhbGwiCiAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBl
OGI0OTY3Li5jOWRhY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTI3ICBCYWxhenMg
S2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDoKKwogMjAxMi0xMC0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMjY4OS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IGM0ZTVhZDMuLjdlZTNiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtOTE0LDcgKzkx
NCw3IEBACiAgICAgJiYgRU5BQkxFKEpJVCkgXAogICAgICYmIChPUyhEQVJXSU4pIHx8IE9TKExJ
TlVYKSkgXAogICAgICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKExJTlVYKSkpIFwKLSAgICAmJiAoQ1BVKFg4
NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpKQorICAgICYmIChDUFUoWDg2KSB8
fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKQogI2RlZmluZSBF
TkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172328</attachid>
            <date>2012-11-05 06:32:46 -0800</date>
            <delta_ts>2012-11-08 11:55:01 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57649</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU3MTc4ZDAuLjYzZWE2ODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTA1ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRo
dW5rcyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJi
OiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6CisKIDIwMTItMTEtMDMgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBCYXNlbGluZSBKSVQgc2hv
dWxkIHVzZSBzdHJ1Y3R1cmUgd2F0Y2hwb2ludHMgd2hlbmV2ZXIgcG9zc2libGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmlu
ZGV4IGZjNmY5ZjQuLjI5ZGYyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMTMwNCw3ICsxMzA0LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBqdW1wKFJlZ2lzdGVySUQgdGFyZ2V0KQogICAgIHsKLSAgICAgICAg
bV9hc3NlbWJsZXIuanIodGFyZ2V0KTsKKyAgICAgICAgbW92ZSh0YXJnZXQsIE1JUFNSZWdpc3Rl
cnM6OnQ5KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuanIoTUlQU1JlZ2lzdGVyczo6dDkpOwogICAg
ICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDEzZTA0MzguLjliMjcyMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNDcsNiArNDcsMTYgQEAK
IAogI2lmIEVOQUJMRShKSVQpCiAKKyNpZiBDUFUoTUlQUykgJiYgV1RGX01JUFNfUElDCisjZGVm
aW5lIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24pIFwKKyAgICAgICAgIi5zZXQgbm9yZW9y
ZGVyIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAgIi5zZXQg
cmVvcmRlciIgIlxuIiBcCisgICAgICAgICJsYSAkdDksICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0
aW9uKSAiXG4iCisjZWxzZQorI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSAi
IiAiXG4iCisjZW5kaWYKKwogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaWYgQ09NUElMRVIoR0ND
KSAmJiBDUFUoWDg2XzY0KQpAQCAtMjAxLDYgKzIxMSw1MiBAQAogICAgICAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKICAgICApOwog
CisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShNSVBTKQorCisjZGVmaW5lIEZVTkNUSU9OX1dS
QVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAg
Ii50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxu
IiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkco
ZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNX
aXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAibW92ZSAkYTEsICRyYSIgIlxuIiBcCisgICAg
ICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJc
biIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERS
RVNTX0VDSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAg
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9M
KGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBc
CisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwK
KyAgICAgICAgIm1vdmUgJGEzLCAkcmEiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVS
RU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVm
aW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkkoZnVuY3Rpb24pIFwK
KyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RS
SU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisg
ICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05f
VE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJzdyAkcmEsIDIw
KCRzcCkiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldp
dGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQ
RVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkNJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAg
Ii50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxu
IiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkco
ZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNX
aXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAyNCgkc3ApIiAiXG4iIFwKKyAg
ICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIg
IlxuIiBcCisgICAgKTsKKwogI2VuZGlmCiAKICNkZWZpbmUgUF9GVU5DVElPTl9XUkFQUEVSX1dJ
VEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXApAQCAtMTUwNyw2ICsxNTYzLDE3IEBAIFNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKICAgICAibW92IHIw
LCByNSIgIlxuIgogICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOworI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoTUlQ
UykKK2FzbSgKKyIudGV4dCIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZSkgIlxuIgorSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkg
IlxuIgorU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgorICAg
IExPQURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUp
CisgICAgImx3ICRzMCwgLTQwKCRzMCkiICJcbiIKKyAgICAibW92ZSAkYTAsICRzMCIgIlxuIgor
ICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKSAiXG4iCispOwogI2VuZGlmCiAKIGV4dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgSE9TVF9D
QUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3Rh
dGUoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApp
bmRleCBiYThjNzZjLi4wMTM0OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmNwcApAQCAtMjgwLDExICsyODAsMTMgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIFBSRVNFUlZF
RF9TMF9PRkZTRVQgICAgICAgICA2NAogI2RlZmluZSBQUkVTRVJWRURfUzFfT0ZGU0VUICAgICAg
ICAgNjgKICNkZWZpbmUgUFJFU0VSVkVEX1MyX09GRlNFVCAgICAgICAgIDcyCi0jZGVmaW5lIFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgNzYKLSNkZWZpbmUgVEhVTktfUkVUVVJOX0FE
RFJFU1NfT0ZGU0VUIDgwCi0jZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA4NAot
I2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQgICAgICAgICAxMDAKLSNkZWZpbmUgU1RBQ0tfTEVO
R1RIICAgICAgICAgICAgICAgMTA0CisjZGVmaW5lIFBSRVNFUlZFRF9TM19PRkZTRVQgICAgICAg
ICA3NgorI2RlZmluZSBQUkVTRVJWRURfUzRfT0ZGU0VUICAgICAgICAgODAKKyNkZWZpbmUgUFJF
U0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4NAorI2RlZmluZSBUSFVOS19SRVRVUk5fQURE
UkVTU19PRkZTRVQgODgKKyNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgIDkyCisj
ZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAgICAgIDEwOAorI2RlZmluZSBTVEFDS19MRU5H
VEggICAgICAgICAgICAgICAxMTIKICNlbGlmIENQVShTSDQpCiAjZGVmaW5lIFNZTUJPTF9TVFJJ
TkcobmFtZSkgI25hbWUKIC8qIGNvZGUgKHI0KSwgSlNTdGFjayogKHI1KSwgQ2FsbEZyYW1lKiAo
cjYpLCB2b2lkKiB1bnVzZWQxIChyNyksIHZvaWQqIHVudXNlZDIoc3ApLCBKU0dsb2JhbERhdGEg
KHNwKSovCkBAIC0zMTgsNiArMzIwLDkgQEAgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAi
OiIgIlxuIgogICAgICJhZGQgIzEyLCByMTUiICJcbiIKICAgICAicnRzIiAiXG4iCiAgICAgIm5v
cCIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgor
SElERV9TWU1CT0woY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFt
cG9saW5lRW5kKSAiOiIgIlxuIgogKTsKIAogYXNtIHZvbGF0aWxlICgKQEAgLTQ1MSw2ICs0NTYs
OCBAQCBhc20gKAogU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJh
ZGRpdSAkMjksJDI5LC0iIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKICAg
ICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVT
U19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgInN3ICAgICQxOSwiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAi
c3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5
KSIgIlxuIgogICAgICJzdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mx
X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKQEAgLTQ2NywxMiArNDc0LDE3IEBA
IFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAibHcgICAgJDE2LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMjAsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAg
Imx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAgICAgImFkZGl1ICQy
OSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAiLnNldCByZW9y
ZGVyIiAiXG4iCiAiLnNldCBtYWNybyIgIlxuIgogIi5lbmQgIiBTWU1CT0xfU1RSSU5HKGN0aVRy
YW1wb2xpbmUpICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQp
ICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkco
Y3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSAoCkBAIC00ODUsOCArNDk3LDgg
QEAgYXNtICgKICIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxu
IgogU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKICNpZiBXVEZf
TUlQU19QSUMKLSAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9H
UF9PRkZTRVQpICIoJDI5KSIgIlxuIgogIi5zZXQgbWFjcm8iICJcbiIKKyIuY3Bsb2FkICQzMSIg
IlxuIgogICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJvdykgIlxuIgog
Ii5zZXQgbm9tYWNybyIgIlxuIgogICAgICJiYWwgIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJv
dykgIlxuIgpAQCAtNDk4LDYgKzUxMCw4IEBAIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1w
b2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAk
MTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4i
CisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCiAg
ICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtNTE4LDYgKzUzMiw4IEBAIFNZTUJPTF9TVFJJTkco
Y3RpT3BUaHJvd05vdENhdWdodCkgIjoiICJcbiIKICAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAk
MTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4i
CiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMjAsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQz
MSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAgICAgImFkZGl1ICQyOSwkMjksIiBT
VFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCkBAIC04MTUsNiArODMxLDggQEAg
SklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQogICAgIEFTU0VS
VChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMwKSA9PSBQ
UkVTRVJWRURfUzBfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBK
SVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1MxX09GRlNFVCk7CiAgICAg
QVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzIp
ID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMzKSA9PSBQUkVTRVJWRURfUzNfT0ZGU0VUKTsK
KyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2
ZWRTNCkgPT0gUFJFU0VSVkVEX1M0X09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykgPT0gUFJFU0VS
VkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihz
dHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5f
QUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CkBAIC0xMTA1LDkgKzEx
MjMsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgVCB0aHJvd0V4Y2VwdGlvbkZyb21P
cENhbGwoSklUU3RhY2tGcmFtZSYgaml0U3RhY2tGcgogICAgICAgICAiLmdsb2JsICIgU1lNQk9M
X1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCiAgICAgICAgICIuZW50ICIgU1lNQk9MX1NUUklORyhj
dGlfIyNvcCkgIlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICI6IiAiXG4i
IFwKLSAgICAgICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1Bf
T0ZGU0VUKSAiKCQyOSkiICJcbiIgXAotICAgICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAg
ICAgIi5zZXQgbWFjcm8iICJcbiIgXAorICAgICAgICAiLmNwbG9hZCAkMjUiICJcbiIgXAorICAg
ICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNT
X09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAgICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJ
TkcoSklUU3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCiAgICAgICAgICIuc2V0IG5vbWFjcm8iICJc
biIgXAogICAgICAgICAiLnJlbG9jIDFmLFJfTUlQU19KQUxSLCIgU1lNQk9MX1NUUklORyhKSVRT
dHViVGh1bmtlZF8jI29wKSAiXG4iIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApp
bmRleCA2ZTMxNDFlLi41NjliMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
CkBAIC0yMjYsNiArMjI2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQqIHByZXNl
cnZlZFMwOwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMTsKICAgICAgICAgdm9pZCogcHJlc2Vy
dmVkUzI7CisgICAgICAgIHZvaWQqIHByZXNlcnZlZFMzOworICAgICAgICB2b2lkKiBwcmVzZXJ2
ZWRTNDsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVzczsKIAogICAgICAgICBS
ZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAppbmRleCBkYTJkNTEwLi4x
NTc1MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZs
aW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zm
bGluZUFzbUNvbmZpZy5oCkBAIC0zOCw2ICszOCw3IEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FS
TXY3IDAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNkZWZpbmUgT0ZGTElORV9BU01f
QVJNdjdzIDAKKyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCiAKICNlbHNlIC8vICFFTkFCTEUo
TExJTlRfQ19MT09QKQogCkBAIC02Nyw2ICs2OCwxMiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9Y
ODZfNjQgMAogI2VuZGlmCiAKKyNpZiBDUFUoTUlQUykKKyNkZWZpbmUgT0ZGTElORV9BU01fTUlQ
UyAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDAKKyNlbmRpZgorCiAjZW5kaWYg
Ly8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTExLDQg
KzExOCwxNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9WQUxVRV9QUk9GSUxFUiAwCiAjZW5kaWYK
IAorI2lmIENQVShNSVBTKQorI2lmZGVmIFdURl9NSVBTX1BJQworI2RlZmluZSBTKHgpICN4Cisj
ZGVmaW5lIFNYKHgpIFMoeCkKKyNkZWZpbmUgT0ZGTElORV9BU01fQ1BMT0FEKHJlZykgXAorICAg
ICIuc2V0IG5vcmVvcmRlclxuIiBcCisgICAgIi5jcGxvYWQgIiBTWChyZWcpICJcbiIgXAorICAg
ICIuc2V0IHJlb3JkZXJcbiIKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcp
CisjZW5kaWYKKyNlbmRpZgorCiAjZW5kaWYgLy8gTExJbnRPZmZsaW5lQXNtQ29uZmlnX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFz
bQppbmRleCBiMjEyZmQ0Li43MjZhNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xODAsMTAgKzE4MCw4IEBAIG1h
Y3JvIGFzc2VydChhc3NlcnRpb24pCiBlbmQKIAogbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNz
QWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0gICAgaWYgQ19MT09QCi0gICAgICAgICMg
SW4gb3VyIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLiAKLSAg
ICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2lmIEFSTXY3CisJaWYg
Q19MT09QIG9yIEFSTXY3IG9yIE1JUFMKKyAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUg
b25seSBwcmVzZXJ2aW5nIHRoZSBieXRlY29kZSB2UEMuIAogICAgICAgICBtb3ZlIGxyLCBkZXN0
aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBwb3AgZGVz
dGluYXRpb25SZWdpc3RlcgpAQCAtMTkzLDEwICsxOTEsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKIGVuZAogCiBtYWNybyByZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBDX0xP
T1AKLSAgICAgICAgIyBJbiBvdXIgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVj
b2RlIHZQQy4gCi0gICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgQVJN
djcKKwlpZiBDX0xPT1Agb3IgQVJNdjcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9PUCBjYXNl
LCB3ZSdyZSBvbmx5IHJlc3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLiAKICAgICAgICAgbW92ZSBz
b3VyY2VSZWdpc3RlciwgbHIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2gg
c291cmNlUmVnaXN0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggODkxYjYzZC4uZGZjNDc5NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KQEAgLTExMyw2ICsxMTMsMTAgQEAgbWFjcm8gY0NhbGwyKGZ1bmN0aW9u
LCBhcmcxLCBhcmcyKQogICAgICAgICBwb2tlIGFyZzEsIDAKICAgICAgICAgcG9rZSBhcmcyLCAx
CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICBlbHNpZiBNSVBTCisgICAgICAgIG1vdmUgYXJn
MSwgYTAKKyAgICAgICAgbW92ZSBhcmcyLCBhMQorICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAg
ZWxzaWYgQ19MT09QCiAgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIGZ1bmN0aW9uLCBhcmcxLCBh
cmcyCiAgICAgZWxzZQpAQCAtMTM0LDYgKzEzOCwxMiBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24s
IGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiAgICAgICAgIHBva2UgYXJnMywgMgogICAgICAgICBw
b2tlIGFyZzQsIDMKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgIGVsc2lmIE1JUFMKKyAgICAg
ICAgbW92ZSBhcmcxLCBhMAorICAgICAgICBtb3ZlIGFyZzIsIGExCisgICAgICAgIG1vdmUgYXJn
MywgYTIKKyAgICAgICAgbW92ZSBhcmc0LCBhMworICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAg
ZWxzaWYgQ19MT09QCiAgICAgICAgIGVycm9yCiAgICAgZWxzZQpAQCAtMTc1OSw2ICsxNzY5LDIw
IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
KQogICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQogICAgICAgICBy
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKICAgICAgICAgbG9hZHAgSklUU3Rh
Y2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgZWxzaWYgTUlQUworICAgICAgICBsb2Fk
cCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICAgICAgc3RvcmVwIGNmciwg
SlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCisgICAgICAgIG1vdmUgdDAsIHQyCisgICAg
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKKyAgICAgICAgc3RvcmVwIHQz
LCBSZXR1cm5QQ1tjZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MAorICAgICAgICBsb2FkaSBDYWxs
ZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCisgICAgICAgIG1vdmUgdDIsIGNmcgorICAgICAgICBtb3ZlIHQw
LCBhMAorICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgICAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKKyAgICAgICAgbG9hZHAgSklU
U3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgZWxzaWYgQ19MT09QCiAgICAgICAg
IGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAgICAgICBzdG9yZXAg
Y2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0M10KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtdjcucmIKaW5kZXggYWIwNDk2Zi4uNjllY2I4YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKQEAgLTE3OSw3ICsxNzksOCBAQCBjbGFz
cyBTZXF1ZW5jZQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNE
b3VibGUocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlh
dGVzKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRl
cyhyZXN1bHQsIDAuLjB4ZmYpCi0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFk
ZHJlc3NlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJl
c3Nlc0NvbW1vbihyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFk
ZHJlc3Nlc1NwZWNpZmljKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0
ZXJSZXVzZShyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9y
YXJpZXMocmVzdWx0LCA6Z3ByLCBBUk12N19FWFRSQV9HUFJTKQogICAgICAgICByZXN1bHQgPSBh
c3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmZwciwgQVJNdjdfRVhUUkFfRlBS
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRz
LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIKaW5kZXgg
NzhlNTQ1Ny4uZWY5MzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYmFja2VuZHMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YmFja2VuZHMucmIKQEAgLTI1LDYgKzI1LDcgQEAgcmVxdWlyZSAiY29uZmlnIgogcmVxdWlyZSAi
YXJtdjciCiByZXF1aXJlICJhc3QiCiByZXF1aXJlICJ4ODYiCityZXF1aXJlICJtaXBzIgogcmVx
dWlyZSAiY2xvb3AiCiAKIEJBQ0tFTkRTID0KQEAgLTMyLDYgKzMzLDcgQEAgQkFDS0VORFMgPQog
ICAgICAiWDg2IiwKICAgICAgIlg4Nl82NCIsCiAgICAgICJBUk12NyIsCisgICAgICJNSVBTIiwK
ICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTQ1LDYgKzQ3LDcgQEAgV09SS0lOR19CQUNLRU5E
UyA9CiAgICAgICJYODYiLAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKKyAgICAgIk1J
UFMiLAogICAgICAiQ19MT09QIgogICAgIF0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCmluZGV4IDhiMjM5MDcuLjUzNDIzZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKQEAg
LTI2OSw2ICsyNjksMTYgQEAgQVJNdjdfSU5TVFJVQ1RJT05TID0KICAgICAgIm9yaXMiCiAgICAg
XQogCitNSVBTX0lOU1RSVUNUSU9OUyA9CisgICAgWworICAgICJtb3Z6IiwKKyAgICAibW92biIs
CisgICAgInNsdCIsCisgICAgInNsdHUiLAorICAgICJwaWNoZHIiLAorICAgICJwaWNoZHJyYSIK
KyAgICBdCisKIENYWF9JTlNUUlVDVElPTlMgPQogICAgIFsKICAgICAgImNsb29wQ3Jhc2giLCAg
ICAgICAgICAgIyBubyBvcGVyYW5kcwpAQCAtMjg1LDcgKzI5NSw3IEBAIENYWF9JTlNUUlVDVElP
TlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAgICAgICAjIG5vIG9wZXJhbmRzCiAgICAgXQog
Ci1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsg
QVJNdjdfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJVQ1RJT05TID0gTUFD
Uk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyAr
IE1JUFNfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUwogCiBJTlNUUlVDVElPTl9QQVRU
RVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsgSU5TVFJVQ1RJT05TLmpvaW4oJyl8KCcpICsgJykp
XFxaJykKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlw
cy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlkZWRkZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIKQEAgLTAsMCArMSw4NjggQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEyIE1JUFMgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTUlQUyBURUNITk9MT0dJ
RVMsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBNSVBTIFRFQ0hOT0xPR0lF
UywgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMg
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3JlcXVp
cmUgJ3Jpc2MnCisKK2NsYXNzIEFzc2VtYmxlcgorICAgIGRlZiBwdXRTdHIoc3RyKQorICAgICAg
ICBAb3V0cC5wdXRzIHN0cgorICAgIGVuZAorZW5kCisKK2NsYXNzIE5vZGUKKyAgICBkZWYgbWlw
c1NpbmdsZUhpCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBtaXBzT3BlcmFuZAorICAgICAgICBy
YWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91Ymxl
T3BlcmFuZCA9fiAvXlwkZi8KKyAgICAgICAgIiRmIiArICgkfi5wb3N0X21hdGNoLnRvX2kgKyAx
KS50b19zCisgICAgZW5kCisgICAgZGVmIG1pcHNTaW5nbGVMbworICAgICAgICBkb3VibGVPcGVy
YW5kID0gbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tk
b3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15cJGYvCisgICAgICAgIGRv
dWJsZU9wZXJhbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0No
aWxkcmVuCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAg
ICBkZWYgZHVtcAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisgICAgZGVmIHJlZ2lzdGVyPwor
ICAgICAgICB0cnVlCisgICAgZW5kCitlbmQKKworTUlQU19URU1QX0dQUlMgPSBbU3BlY2lhbFJl
Z2lzdGVyLm5ldygiJHQ1IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NiIpLCBTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkdDciKSwKKyAgICAgICAgICAgICAgICAgICAgU3BlY2lhbFJlZ2lzdGVyLm5l
dygiJHQ4IildCitNSVBTX1RFTVBfRlBSUyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZjE2Iild
CitNSVBTX1NDUkFUQ0hfRlBSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJGYxOCIpCisKK2RlZiBt
aXBzTW92ZUltbWVkaWF0ZSh2YWx1ZSwgcmVnaXN0ZXIpCisgICAgaWYgdmFsdWUgPT0gMAorICAg
ICAgICAkYXNtLnB1dHMgImFkZCAje3JlZ2lzdGVyLm1pcHNPcGVyYW5kfSwgJHplcm8sICR6ZXJv
IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJsaSAje3JlZ2lzdGVyLm1pcHNPcGVyYW5k
fSwgI3t2YWx1ZX0iCisgICAgZW5kCitlbmQKKworCitjbGFzcyBSZWdpc3RlcklECisgICAgZGVm
IG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3aGVuICJhMCIKKyAgICAg
ICAgICAgICIkYTAiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAgIiRhMSIKKyAgICAg
ICAgd2hlbiAicjAiLCAidDAiCisgICAgICAgICAgICAiJHYwIgorICAgICAgICB3aGVuICJyMSIs
ICJ0MSIKKyAgICAgICAgICAgICIkdjEiCisgICAgICAgIHdoZW4gInQyIgorICAgICAgICAgICAg
IiR0MiIKKyAgICAgICAgd2hlbiAidDMiCisgICAgICAgICAgICAiJHMzIgorICAgICAgICB3aGVu
ICJ0NCIgICAjIFBDIHJlZyBpbiBsbGludAorICAgICAgICAgICAgIiRzMiIKKyAgICAgICAgd2hl
biAidDUiCisgICAgICAgICAgICAiJHQ1IgorICAgICAgICB3aGVuICJ0NiIKKyAgICAgICAgICAg
ICIkdDYiCisgICAgICAgIHdoZW4gInQ3IgorICAgICAgICAgICAgIiR0NyIKKyAgICAgICAgd2hl
biAidDgiCisgICAgICAgICAgICAiJHQ4IgorICAgICAgICB3aGVuICJjZnIiCisgICAgICAgICAg
ICAiJHMwIgorICAgICAgICB3aGVuICJsciIKKyAgICAgICAgICAgICIkcmEiCisgICAgICAgIHdo
ZW4gInNwIgorICAgICAgICAgICAgIiRzcCIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFp
c2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
CisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVnaXN0ZXJJRAorICAgIGRl
ZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiZnQwIiwgImZy
IgorICAgICAgICAgICAgIiRmMCIKKyAgICAgICAgd2hlbiAiZnQxIgorICAgICAgICAgICAgIiRm
MiIKKyAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICAgICAgIiRmNCIKKyAgICAgICAgd2hlbiAi
ZnQzIgorICAgICAgICAgICAgIiRmNiIKKyAgICAgICAgd2hlbiAiZnQ0IgorICAgICAgICAgICAg
IiRmOCIKKyAgICAgICAgd2hlbiAiZnQ1IgorICAgICAgICAgICAgIiRmMTAiCisgICAgICAgIHdo
ZW4gImZhMCIKKyAgICAgICAgICAgICIkZjEyIgorICAgICAgICB3aGVuICJmYTEiCisgICAgICAg
ICAgICAiJGYxNCIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3Rl
ciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAor
ICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiBtaXBzT3BlcmFuZAorICAg
ICAgICByYWlzZSAiSW52YWxpZCBpbW1lZGlhdGUgI3t2YWx1ZX0gYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIgaWYgdmFsdWUgPCAtMHg3ZmZmIG9yIHZhbHVlID4gMHg3ZmZmCisgICAgICAgICIje3Zh
bHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIG1pcHNPcGVyYW5k
CisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIG9m
ZnNldC52YWx1ZSA8IC0weDdmZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHg3ZmZmCisgICAgICAgICIj
e29mZnNldC52YWx1ZX0oI3tiYXNlLm1pcHNPcGVyYW5kfSkiCisgICAgZW5kCitlbmQKKworY2xh
c3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJV
bmNvbnZlcnRlZCBhYnNvbHV0ZSBhZGRyZXNzIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAg
ZW5kCitlbmQKKworIworIyBMb3dlciAnYW5kJyBtYXNrZWQgYnJhbmNoZXMKKyMKKworZGVmIGxv
d2VyTUlQU0NvbmRCcmFuY2gobGlzdCwgY29uZE9wLCBub2RlKQorICAgIGlmIG5vZGUub3BlcmFu
ZHMuc2l6ZSA9PSAyCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZE9wLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbbm9kZS5vcGVyYW5kc1swXSwgU3BlY2lhbFJlZ2lzdGVy
Lm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1stMV1dLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgZWxzaWYgbm9kZS5vcGVyYW5kcy5zaXpl
ID09IDMKKyAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImFuZGkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICBsaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmRPcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RtcCwg
U3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1stMV1dKQorICAgIGVs
c2UKKyAgICAgICAgcmFpc2UgIkV4cGVjdGVkIDIgb3IgMyBvcGVyYW5kcyBidXQgZ290ICN7bm9k
ZS5vcGVyYW5kcy5zaXplfSBhdCAje25vZGUuY29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCitl
bmQKKworIworIyBMb3dlcmluZyBvZiBicmFuY2ggb3BzLiBGb3IgZXhhbXBsZToKKyMKKyMgYmFk
ZGl6IGZvbywgYmFyLCBiYXoKKyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIGFkZGkgZm9vLCBiYXIK
KyMgYnogYmF6CisjCisKK2RlZiBtaXBzTG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKKyAgICBu
ZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBp
ZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5h
bm5vdGF0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVu
IC9eYihhZGRpfHN1Yml8b3JpfGFkZHApLworICAgICAgICAgICAgICAgIG9wID0gJDEKKyAgICAg
ICAgICAgICAgICBiYyA9ICR+LnBvc3RfbWF0Y2gKKyAgICAgICAgICAgICAgICBicmFuY2ggPSAi
YiIgKyBiYyAKKworICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICB3aGVu
ICJhZGRpIiwgImFkZHAiCisgICAgICAgICAgICAgICAgICAgIG9wID0gImFkZGkiCisgICAgICAg
ICAgICAgICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAic3ViaSIKKyAg
ICAgICAgICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAgICAgICAgIG9wID0gIm9yaSIK
KyAgICAgICAgICAgICAgICBlbmQKKworICAgICAgICAgICAgICAgIHplcm8gPSBTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkemVybyIpCisgICAgICAgICAgICAgICAgaWYgYmMgPT0gIm8iCisgICAgICAg
ICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgIGFkZHUgJHMwLCAkczEsICRzMgorICAgICAgICAgICAg
ICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICMgIGJsdCAkdDAsICR6ZXJvLCBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAg
IyAgeG9yICR0MCwgJHMwLCAkczEKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAs
ICR6ZXJvLCBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdmVyZmxvdzoK
KyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0g
VG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICB0
bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3Jp
Z2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVy
YW5kc1sxXSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJh
bmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAs
IHplcm8sIG5vRmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2RlLm9wZXJhbmRz
WzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vZGUub3BlcmFuZHNb
Ml1dKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgIm1vdmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICB3
aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgc3VidSAkczAsICRzMSwgJHMy
CisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAg
ICAgICAgICAgICAgICAgIyAgYmdlICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAg
ICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAg
ICAgIyAgYmx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAj
IG5vIG92ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAg
ICAgICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAg
ICAgICAgICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ci
KQorICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5j
ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVy
YW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
eG9yaSIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAiYmlndGVxIiwgW3RtcCwgemVybywgbm9GbG93UmVmXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmki
LCBbdHIsIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwg
emVybywgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IG5vRmxvdworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXV0pCisg
ICAgICAgICAgICAgICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMg
bm8gb3Z3ZXJmbG93IGF0IG9yaQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4xXSwg
YW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlzX2E/IEFkZHJlc3MK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAibG9hZHAiLCBbYWRkciwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwg
W25vZGUub3BlcmFuZHNbMF0sIHRyXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlcCIsIFt0ciwgYWRkcl0p
CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0g
bm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFu
bm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW3RyLCB6
ZXJvLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICB3aGVuICJiaWEiLCAiYnBhIiwgImJiYSIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNv
ZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9w
ZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1w
LCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAg
ICAgICAgIHdoZW4gImJpYWVxIiwgImJwYWVxIiwgImJiYWVxIgorICAgICAgICAgICAgICAgIHRt
cCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAg
PSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0
bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBhbm5vdGF0aW9uKQorICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
ImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1sy
XV0pCisgICAgICAgICAgICB3aGVuICJiaWIiLCAiYnBiIiwgImJiYiIKKyAgICAgICAgICAgICAg
ICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBj
b21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21w
LCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdXSwgYW5ub3RhdGlvbikK
KyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJh
bmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYmVxIiwgImJwYmVxIiwgImJiYmVxIgorICAg
ICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAg
ICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0
dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF1dLCBh
bm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwg
bm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoiLCAiYnRi
eiIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJieiIsIG5v
ZGUpCisgICAgICAgICAgICB3aGVuICJidGlueiIsICJidHBueiIsICJidGJueiIKKyAgICAgICAg
ICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJibnoiLCBub2RlKQorICAgICAg
ICAgICAgd2hlbiAiYnRpbyIsICJidHBvIiwgImJ0Ym8iCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBub2RlCisgICAgICAgICAgICB3aGVuICJidGlzIiwgImJ0cHMiLCAiYnRicyIKKyAgICAg
ICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJicyIsIG5vZGUpCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAg
ICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAg
IGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBTcGVjaWFsaXphdGlvbiBvZiBs
b3dlcmluZyBvZiBtYWxmb3JtZWQgQmFzZUluZGV4IGFkZHJlc3Nlcy4KKyMKKworY2xhc3MgQmFz
ZUluZGV4CisgICAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc1JlY3Vyc2UobGlzdCwg
bm9kZSwgJmJsb2NrKQorICAgICAgICBpZiBzY2FsZVNoaWZ0ID09IDAKKyAgICAgICAgICAgIHRt
cDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFtiYXNlLCBpbmRleCwgdG1wMF0pCisgICAg
ICAgICAgICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNvZGVP
cmlnaW4sIG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0bXAwID0g
VG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcoY29kZU9yaWdpbiwgImxzaGlmdGkiLCBbaW5kZXgsIEltbWVkaWF0ZS5uZXcoY29kZU9y
aWdpbiwgc2NhbGVTaGlmdCksIHRtcDBdKTsKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIHRtcDBdKQorICAgICAgICAgICAgQWRk
cmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBvZmZz
ZXQudmFsdWUpKTsKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworIworIyBMb3dlcmluZyBv
ZiBtaXNwbGFjZWQgaW1tZWRpYXRlcyBvZiBNSVBTIHNwZWNpZmljIGluc3RydWN0aW9ucy4gRm9y
IGV4YW1wbGU6CisjCisjIHNsdHUgcmVnLCA0LCAyCisjCisjIHdpbGwgYmVjb21lOgorIworIyBt
b3ZlIDQsIHRtcAorIyBzbHR1IHJlZywgdG1wLCAyCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFj
ZWRJbW1lZGlhdGVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAg
ICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAg
ICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAic2x0IiwgInNsdHUiLCAi
c2x0YiIsICJzbHR1YiIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlzX2E/
IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9y
aWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzFdLCB0bXBdLCBub2Rl
LmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCB0bXAsIG5vZGUub3Bl
cmFuZHNbMl1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAg
fQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxpemF0aW9uIG9mIGxvd2VyaW5nIG9m
IG1pc3BsYWNlZCBhZGRyZXNzZXMuCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRBZGRyZXNz
ZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAg
ICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAg
ICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUu
YW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hl
biAiam1wIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uYWRkcmVzcz8KKyAg
ICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHJhIikKKyAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1sw
XS5jb2RlT3JpZ2luLCAibG9hZGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBu
b2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmlzY0FzUmVnaXN0
ZXIobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5vcGVyYW5kc1swXSwgInAiLCBmYWxz
ZSldKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAg
ICAgICAgICAgICByZXN0b3JlR1AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9w
ZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRwIiwgW25vZGUub3BlcmFu
ZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJlbFJlZmVyZW5jZQor
ICAgICAgICAgICAgICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRzWzBdCisgICAgICAgICAgICAg
ICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVy
YW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lz
dGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRz
WzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gbm9kZS5vcGVyYW5kc1sw
XQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFt0bXBdKQorICAgICAgICAg
ICAgICAgIGlmIHJlc3RvcmVHUAorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJtb3ZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRzNCIpLCBTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkZ3AiKV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVu
ICJzbHQiLCAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiaSIpKQor
ICAgICAgICAgICAgd2hlbiAic2x0dWIiLCAic2x0YiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2Rl
Lm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAiYnoiLCAiYm56IiwgImJzIiwgImJv
IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9w
Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNjQXNS
ZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMsICJpIikpCisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9ucworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QK
K2VuZAorCisjCisjIExvd2VyaW5nIGNvbXBhcmVzIGFuZCB0ZXN0cy4KKyMKKworZGVmIG1pcHNM
b3dlckNvbXBhcmVUZW1wbGF0ZShsaXN0LCBub2RlLCBvcENtcCwgb3BNb3YpCisgICAgdG1wMCA9
IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgIHRtcDEgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAwKSwgbm9kZS5vcGVyYW5kc1syXV0p
CisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcENtcCwgW25v
ZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcDBdKQorICAgIGxpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhuaWws
IDEpLCB0bXAxXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IG9wTW92LCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMF0pCitlbmQKKworZGVmIG1pcHNM
b3dlckNvbXBhcmVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAg
ICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAg
ICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiY2llcSIsICJjcGVxIiwg
ImNiZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3Qs
IG5vZGUsICJzdWJwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAiY2luZXEiLCAiY3BuZXEi
LCAiY2JuZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xp
c3QsIG5vZGUsICJzdWJwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGl6IiwgInRieiIs
ICJ0cHoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3Qs
IG5vZGUsICJhbmRwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAidGlueiIsICJ0Ym56Iiwg
InRwbnoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3Qs
IG5vZGUsICJhbmRwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGlvIiwgInRibyIsICJ0
cG8iCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIp
CisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAg
ICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNs
dCIsIFtub2RlLm9wZXJhbmRzWzJdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCB0bXBd
KQorICAgICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCisgICAgICAgICAgICAgICAg
dG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJh
bmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJd
LCB0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIildKQorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9Cisg
ICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTGVhIHN1cHBvcnQuCisjCisKK2NsYXNzIEFkZHJlc3MK
KyAgICBkZWYgbWlwc0VtaXRMZWEoZGVzdGluYXRpb24pCisgICAgICAgIGlmIGRlc3RpbmF0aW9u
ID09IGJhc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlvbi5taXBz
T3BlcmFuZH0sICN7b2Zmc2V0LnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFz
bS5wdXRzICJhZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tiYXNlLm1pcHNPcGVy
YW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisj
IEFkZCBQSUMgY29tcGF0aWJsZSBoZWFkZXIgY29kZSB0byBwcm9sb2d1ZS9lbnRyeSBydXRpbnMu
CisjCisKK2RlZiBtaXBzQWRkUElDQ29kZShsaXN0KQorICAgIG15TGlzdCA9IFtdCisgICAgbGlz
dC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgbXlMaXN0IDw8IG5vZGUKKyAgICAg
ICAgaWYgbm9kZS5pc19hPyBMYWJlbAorICAgICAgICAgICAgaWYgL19wcm9sb2d1ZSQvLm1hdGNo
KG5vZGUubmFtZSkgfHwgL15fbGxpbnRfZnVuY3Rpb25fLy5tYXRjaChub2RlLm5hbWUpCisgICAg
ICAgICAgICAgICAgIyBGdW5jdGlvbnMgY2FsbGVkIGZyb20gdHJhbXBvbGluZS9KSVQgY29kZXMu
CisgICAgICAgICAgICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJwaWNoZHIiLCBbXSkKKyAgICAgICAgICAgIGVsc2lmIC9fbGxpbnRfb3BfY2F0Y2gvLm1h
dGNoKG5vZGUubmFtZSkKKyAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbiBjYWN0Y2hlciBlbnRy
eSBwb2ludCBmdW5jdGlvbi4KKyAgICAgICAgICAgICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgInBpY2hkcnJhIiwgW10pCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgZW5kCisgICAgfQorICAgIG15TGlzdAorZW5kCisKKyMKKyMgQWN0dWFsIGxvd2VyaW5n
IGNvZGUgZm9sbG93cy4KKyMKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRM
aXN0TUlQUworICAgICAgICByZXN1bHQgPSBAbGlzdAorCisgICAgICAgICMgVmVyaWZ5IHRoYXQg
d2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KKyAgICAgICAgcmVzdWx0
LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIHVubGVzcyBub2RlLmlz
X2E/IEluc3RydWN0aW9uIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTGFiZWwg
b3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAgICAg
ICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4
cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iIAorICAgICAgICAg
ICAgZW5kCisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBtaXBzQWRkUElDQ29kZShyZXN1
bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlclNpbXBsZUJyYW5jaE9wcyhyZXN1bHQpCisg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlckhhcmRCcmFuY2hPcHMocmVzdWx0KQorICAgICAgICBy
ZXN1bHQgPSByaXNjTG93ZXJTaGlmdE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NM
b3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQpIHsKKyAgICAgICAgICAgIHwgbm9kZSwgYWRk
cmVzcyB8CisgICAgICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAg
ICAgICAoLTB4ZmZmZi4uMHhmZmZmKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgfQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3Vi
bGUocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVz
KHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhy
ZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVz
dWx0LCAtMHhmZmZmLi4weGZmZmYpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNl
ZEFkZHJlc3Nlc0NvbW1vbihyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlck1pc3Bs
YWNlZEFkZHJlc3Nlc1NwZWNpZmljKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2Vy
UmVnaXN0ZXJSZXVzZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlckNvbXBhcmVz
KHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jhcmllcyhy
ZXN1bHQsIDpncHIsIE1JUFNfVEVNUF9HUFJTKQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdp
c3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmZwciwgTUlQU19URU1QX0ZQUlMpCisKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdAorICAgIGVuZAorZW5kCisKK2RlZiBtaXBzT3BlcmFuZHMob3BlcmFu
ZHMpCisgICAgb3BlcmFuZHMubWFwe3x2fCB2Lm1pcHNPcGVyYW5kfS5qb2luKCIsICIpCitlbmQK
KworZGVmIG1pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpCisgICAgbWlwc09wZXJhbmRzKFtv
cGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJdKQorZW5kCisKK2RlZiBnZXRNSVBTT3Bjb2Rl
KG9wY29kZSwgc3VmZml4KQorCitlbmQKKworZGVmIGVtaXRNSVBTQ29tcGFjdChvcGNvZGUsIG9w
Y29kZWksIG9wZXJhbmRzKQorICAgIHBvc3RmaXggPSAiIgorICAgIGlmIG9wY29kZSA9PSAic3Vi
IgorICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9w
Y29kZSA9ICJhZGQiCisgICAgICAgICAgICBvcGVyYW5kc1swXSA9IEltbWVkaWF0ZS5uZXcob3Bl
cmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBvcGVyYW5kc1swXS52YWx1ZSkKKyAgICAgICAgZWxz
aWYgb3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICBvcGNvZGUgPSAiYWRk
IgorICAgICAgICAgICAgb3BlcmFuZHNbMV0gPSBJbW1lZGlhdGUubmV3KG9wZXJhbmRzWzFdLmNv
ZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMV0udmFsdWUpCisgICAgICAgIGVuZAorICAgICAgICBw
b3N0Zml4ID0gInUiCisgICAgZWxzaWYgb3Bjb2RlID09ICJhZGQiCisgICAgICAgIHBvc3RmaXgg
PSAidSIKKyAgICBlbmQKKyAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgaWYgb3Bl
cmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
fWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIGVsc2lmIG9wZXJhbmRz
WzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX1pI3tw
b3N0Zml4fSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0udmFsdWV9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0gI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJh
bmRzKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJh
bmRzLnNpemUgPT0gMgorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/
CisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFz
bS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9Igor
ICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0g
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKwor
ZGVmIGVtaXRNSVBTU2hpZnRDb21wYWN0KG9wY29kZSwgb3BlcmFuZHMpCisgICAgaWYgb3BlcmFu
ZHMuc2l6ZSA9PSAzCisgICAgICAgIGlmIChvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUpCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0udmFsdWV9IgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfXYgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFp
c2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICBpZiBvcGVyYW5kc1swXS5yZWdp
c3Rlcj8KKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9diAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
fSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYg
ZW1pdE1JUFMob3Bjb2RlLCBvcGVyYW5kcykKKyAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAg
ICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRz
KX0iCisgICAgZWxzZQorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisg
ICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisg
ICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgbmVn
LCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgImMuI3ticmFuY2hPcGNvZGV9LmQgI3ttaXBzT3Bl
cmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICBpZiAoIW5lZykKKyAgICAgICAgJGFzbS5wdXRz
ICJiYzF0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5w
dXRzICJiYzFmICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVuZAorZW5kCisKK2NsYXNz
IEluc3RydWN0aW9uCisgICAgZGVmIGxvd2VyTUlQUworICAgICAgICAkYXNtLmNvbW1lbnQgY29k
ZU9yaWdpblN0cmluZworICAgICAgICBjYXNlIG9wY29kZQorICAgICAgICB3aGVuICJhZGRpIiwg
ImFkZHAiLCAiYWRkaXMiCisgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9w
ZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBv
cGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFu
ZHNbMl0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0udmFsdWUgPT0g
MCAjYW5kIHN1ZmZpeC5lbXB0eT8KKyAgICAgICAgICAgICAgICAgICAgdW5sZXNzIG9wZXJhbmRz
WzFdID09IG9wZXJhbmRzWzJdCisgICAgICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1v
dmUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzLnNpemUgPT0g
MyBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNz
IG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVy
YW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZHUgI3ttaXBz
RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAg
IHVubGVzcyBJbW1lZGlhdGUubmV3KG5pbCwgMCkgPT0gb3BlcmFuZHNbMF0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0s
ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
YWRkdSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKKyAgICAgICAgICAgIGVt
aXRNSVBTQ29tcGFjdCgiYW5kIiwgImFuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJvcmki
LCAib3JwIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJvciIsICJvcnIiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAib3JpcyIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgib3Ii
LCAib3JycyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJ4b3JpIiwgInhvcnAiCisgICAgICAg
ICAgICBlbWl0TUlQU0NvbXBhY3QoInhvciIsICJlb3IiLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAibHNoaWZ0aSIsICJsc2hpZnRwIgorICAgICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3Qo
InNsbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJyc2hpZnRpIiwgInJzaGlmdHAiCisgICAg
ICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgic3JhIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gInVyc2hpZnRpIiwgInVyc2hpZnRwIgorICAgICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBh
Y3QoInNybCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCisgICAgICAg
ICAgICBlbWl0TUlQUygibXVsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInN1YmkiLCAic3Vi
cCIsICJzdWJpcyIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgic3ViIiwgInN1YnMiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJuZWd1ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAibm90aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9y
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwg
JHplcm8iCisgICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRpcyIsICJsb2FkcCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibHcgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7
bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRiIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsYnUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRicyIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGIgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlYiIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAic2IgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
bG9hZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxodSAje21pcHNGbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGhzIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJsaCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3Rv
cmVoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzaHYgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAibG9hZGQiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkYzEgI3tt
aXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAic2RjMSAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICB3aGVuICJhZGRkIgorICAgICAgICAgICAgZW1pdE1JUFMoImFkZC5kIiwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAgICAgICBlbWl0TUlQUygiZGl2LmQiLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAic3ViZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJzdWIuZCIs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJtdWxkIgorICAgICAgICAgICAgZW1pdE1JUFMoIm11
bC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInNxcnRkIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzcXJ0LmQgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdo
ZW4gImNpMmQiCisgICAgICAgICAgICByYWlzZSAiaW52YWxpZCBvcHMgb2YgI3tzZWxmLmluc3Bl
Y3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kc1sxXS5pc19hPyBGUFJl
Z2lzdGVySUQgYW5kIG9wZXJhbmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgJGFzbS5wdXRz
ICJtdGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LmQudyAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImJkZXEi
CisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gImJkbmVxIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2go
InVlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0IgorICAgICAgICAgICAg
ZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJiZGd0ZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWx0IiwgdHJ1ZSwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHQiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJs
ZUJyYW5jaCgib2x0IiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0ZXEiCisg
ICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2xlIiwgZmFsc2UsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJiZGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgi
dWVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZG5lcXVuIgorICAgICAgICAg
ICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJkZ3R1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbGUiLCB0cnVl
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQ
U0RvdWJsZUJyYW5jaCgib2x0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHR1
biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bHQiLCBmYWxzZSwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJkbHRlcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVC
cmFuY2goInVsZSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYnRkMmkiCisgICAg
ICAgICAgICAjIEZJWE1FOiBtYXkgYmUgYSBnb29kIGlkZWEgdG8ganVzdCBnZXQgcmlkIG9mIHRo
aXMgaW5zdHJ1Y3Rpb24sIHNpbmNlIHRoZSBpbnRlcnByZXRlcgorICAgICAgICAgICAgIyBjdXJy
ZW50bHkgZG9lcyBub3QgdXNlIGl0LgorICAgICAgICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qg
c3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInRk
MmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC53LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1p
cHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9G
UFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgd2hlbiAiYmNkMmkiCisgICAgICAgICAgICAkYXNt
LnB1dHMgImN2dC53LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFu
ZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiY3Z0LmQudyAje01JUFNfU0NSQVRDSF9GUFIubWlwc09wZXJh
bmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgIGVtaXRN
SVBTRG91YmxlQnJhbmNoKCJlcSIsIHRydWUsIFtNSVBTX1NDUkFUQ0hfRlBSLCBvcGVyYW5kc1sw
XSwgb3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICR6ZXJvLCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAg
d2hlbiAibW92ZHoiCisgICAgICAgICAgICAjIEZJWE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9y
IHJlbW92ZSBpdC4KKyAgICAgICAgICAgIHJhaXNlICJNSVBTIGRvZXMgbm90IHN1cHBvcnQgdGhp
cyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJwb3AiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImx3ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRzcCwgJHNwLCA0IgorICAgICAgICB3aGVuICJw
dXNoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAkc3AsICRzcCwgLTQiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisg
ICAgICAgIHdoZW4gIm1vdmUiLCAic3hpMnAiLCAienhpMnAiCisgICAgICAgICAgICBpZiBvcGVy
YW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICBtaXBzTW92ZUltbWVkaWF0
ZShvcGVyYW5kc1swXS52YWx1ZSwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gIm5vcCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAibm9wIgorICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiYmVxICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7
b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaW5lcSIsICJicG5lcSIsICJi
Ym5lcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7bWlwc09wZXJhbmRzKG9wZXJhbmRz
WzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWd0Iiwg
ImJwZ3QiLCAiYmJndCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmd0ICN7bWlwc09wZXJhbmRz
KG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVu
ICJiaWd0ZXEiLCAiYnBndGVxIiwgImJiZ3RlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmdl
ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgICAgICB3aGVuICJiaWx0IiwgImJwbHQiLCAiYmJsdCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiYmx0ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0u
YXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0ZXEiLCAiYnBsdGVxIiwgImJibHRlcSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiYmxlICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0s
ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJqbXAiCisgICAgICAgICAg
ICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImogI3tv
cGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJqciAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB3aGVuICJjYWxsIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0ubGFiZWw/
CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqYWwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0i
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqYWxyICN7b3Bl
cmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImJy
ZWFrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJicmVhayIKKyAgICAgICAgd2hlbiAicmV0Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJqciAkcmEiCisgICAgICAgIHdoZW4gImNpYSIsICJjcGEi
LCAiY2JhIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3Bl
cmFuZH0iCisgICAgICAgIHdoZW4gImNpYWVxIiwgImNwYWVxIiwgImNiYWVxIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAg
IHdoZW4gImNpYiIsICJjcGIiLCAiY2JiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7
b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpYmVxIiwgImNwYmVxIiwg
ImNiYmVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3Bl
cmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3Bl
cmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpZ3QiLCAiY3BndCIsICJjYmd0IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hl
biAiY2lndGVxIiwgImNwZ3RlcSIsICJjYmd0ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNs
dCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Jp
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAxIgorICAgICAgICB3aGVuICJjaWx0IiwgImNw
bHQiLCAiY2JsdCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpbHRlcSIsICJjcGx0ZXEiLCAiY2JsdGVxIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAg
ICAgICAgd2hlbiAicGVlayIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fSgkc3ApIgorICAgICAgICB3
aGVuICJwb2tlIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdyAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9KCRzcCkiCisgICAgICAgIHdoZW4gImZp
aTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzJdLm1pcHNTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMg
Im10YzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc1Npbmds
ZUhpfSIKKyAgICAgICAgd2hlbiAiZmQyaWkiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc1NpbmdsZUxvfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzU2luZ2xlSGl9IgorICAgICAgICB3aGVuICJibyIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmd0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4g
ImJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJibHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIK
KyAgICAgICAgd2hlbiAiYnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRz
WzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
Ml0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJibnoiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImJuZSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAi
CisgICAgICAgICAgICBvcGVyYW5kc1swXS5taXBzRW1pdExlYShvcGVyYW5kc1sxXSkKKyAgICAg
ICAgd2hlbiAic211bGxpIgorICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1
bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAorICAgICAgICAgICAgJGFzbS5wdXRzICJtdWx0
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibWZsbyAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibWZoaSAje29wZXJhbmRzWzNdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgd2hlbiAibW92eiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92eiAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJtb3ZuIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3ZuICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNs
dCIsICJzbHRiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNP
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0dSIsICJzbHR1YiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic2x0dSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJwaWNo
ZHIiCisgICAgICAgICAgICAkYXNtLnB1dFN0cigiT0ZGTElORV9BU01fQ1BMT0FEKCQyNSkiKQor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICRzNCwgJGdwIgorICAgICAgICB3aGVuICJwaWNo
ZHJyYSIKKyAgICAgICAgICAgICRhc20ucHV0U3RyKCJPRkZMSU5FX0FTTV9DUExPQUQoJDMxKSIp
CisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgJHM0LCAkZ3AiCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3Jpc2MucmIKaW5kZXggNDRiNGRiZC4uNDkxYTNjYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCkBAIC02MywxMCArNjMsNiBAQCBkZWYgcmlz
Y0xvd2VyU2ltcGxlQnJhbmNoT3BzKGxpc3QpCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9k
ZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24pCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBicmFuY2gsIFtub2RlLm9wZXJhbmRz
Wy0xXV0pCi0gICAgICAgICAgICB3aGVuICdibXVsaXMnLCAnYm11bHonLCAnYm11bG56JwotICAg
ICAgICAgICAgICAgIGNvbmRpdGlvbiA9ICR+LnBvc3RfbWF0Y2gKLSAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtdWxpIiwgbm9kZS5v
cGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24pCi0gICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnRpIiArIGNvbmRpdGlvbiwgW25vZGUu
b3BlcmFuZHNbLTJdLCBub2RlLm9wZXJhbmRzWy0xXV0pCiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICBlbmQKQEAgLTkzLDEyICs4
OSwyMiBAQCBkZWYgcmlzY0xvd2VySGFyZEJyYW5jaE9wcyhsaXN0KQogICAgIG5ld0xpc3QgPSBb
XQogICAgIGxpc3QuZWFjaCB7CiAgICAgICAgIHwgbm9kZSB8Ci0gICAgICAgIGlmIG5vZGUuaXNf
YT8gSW5zdHJ1Y3Rpb24gYW5kIG5vZGUub3Bjb2RlID09ICJibXVsaW8iCi0gICAgICAgICAgICB0
bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCi0gICAgICAgICAgICB0bXAyID0g
VG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCi0gICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1sw
XSwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5ub3Rh
dGlvbikKLSAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgInJzaGlmdGkiLCBbbm9kZS5vcGVyYW5kc1stMl0sIEltbWVkaWF0ZS5uZXcobm9kZS5j
b2RlT3JpZ2luLCAzMSksIHRtcDJdKQotICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmluZXEiLCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5k
c1stMV1dKQorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBh
bm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2Rl
CisgICAgICAgICAgICB3aGVuICAiYm11bGlvIgorICAgICAgICAgICAgICAgIHRtcDEgPSBUbXAu
bmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICB0bXAyID0gVG1wLm5l
dyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic211bGxpIiwgW25vZGUub3BlcmFuZHNbMF0s
IG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcDFdLCBub2RlLmFubm90YXRp
b24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmluZXEiLCBbdG1wMSwgdG1wMiwgbm9kZS5v
cGVyYW5kc1stMV1dKQorICAgICAgICAgICAgd2hlbiAvXmJtdWxpLworICAgICAgICAgICAgICAg
IGNvbmRpdGlvbiA9ICR+LnBvc3RfbWF0Y2gKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4t
Ml0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAiYnRpIiArIGNvbmRpdGlvbiwgW25vZGUub3BlcmFuZHNbLTJd
LCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgIGVuZApAQCAtNDQ3LDcgKzQ1Myw3IEBAIGRlZiBy
aXNjQXNSZWdpc3RlcnMocHJlTGlzdCwgcG9zdExpc3QsIG9wZXJhbmRzLCBzdWZmaXgpCiAgICAg
bmV3T3BlcmFuZHMKIGVuZAogCi1kZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3Qp
CitkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9uKGxpc3QpCiAgICAgbmV3TGlz
dCA9IFtdCiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKQEAgLTQ4Myw2ICs0ODks
MjUgQEAgZGVmIHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhsaXN0KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2NBc1JlZ2lzdGVycyhuZXdMaXN0LCBw
b3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiZCIpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90YXRpb24pCisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9ucworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAor
CitkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMobGlzdCkKKyAgICBuZXdM
aXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBu
b2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10K
KyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNh
c2Ugbm9kZS5vcGNvZGUKICAgICAgICAgICAgIHdoZW4gImptcCIsICJjYWxsIgogICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
ZjkzYzNiNS4uNTQxOGFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0wNSAgQmFsYXpz
IEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIE1JUFMgTExJbnQg
aW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIExMSW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTLgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKIDIwMTItMTEtMDMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgR2V0IHJpZCBvZiBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAppbmRleCBlZjgyMzgyLi4xNzgxOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTkxNyw3ICs5MTcs
NyBAQAogICAgICYmIEVOQUJMRShKSVQpIFwKICAgICAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5V
WCkpIFwKICAgICAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JN
KEdUSykgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhMSU5VWCkpKSBcCi0gICAgJiYgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSkKKyAgICAmJiAoQ1BVKFg4NikgfHwg
Q1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkKICNkZWZpbmUgRU5B
QkxFX0xMSU5UIDEKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173086</attachid>
            <date>2012-11-08 11:55:01 -0800</date>
            <delta_ts>2012-11-08 12:22:18 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>21676</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ4ZDY2NDcuLjk3YzE5OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTA4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRo
dW5rcyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yaXNjLnJi
OgorCiAyMDEyLTExLTA4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAg
ICAgICAgIE9wYXF1ZUpTQ2xhc3NDb250ZXh0RGF0YSgpIHNob3VsZCB1c2UgU3RyaW5nSW1wbDo6
aXNvbGF0ZWRDb3B5KCkgdG8gbWFrZSBzdHJpbmcgY29waWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBmYzZmOWY0
Li4yOWRmMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTEzMDQsNyArMTMwNCw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQganVtcChSZWdpc3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVy
LmpyKHRhcmdldCk7CisgICAgICAgIG1vdmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmpyKE1JUFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3Nl
bWJsZXIubm9wKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAppbmRleCAwZTQ1ZTIzLi41MTk4YWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTQ3LDYgKzQ3LDE2IEBACiAKICNpZiBFTkFC
TEUoSklUKQogCisjaWYgQ1BVKE1JUFMpICYmIFdURl9NSVBTX1BJQworI2RlZmluZSBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSBcCisgICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBc
CisgICAgICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICIuc2V0IHJlb3JkZXIiICJc
biIgXAorICAgICAgICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgor
I2Vsc2UKKyNkZWZpbmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgorI2Vu
ZGlmCisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2lmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4
Nl82NCkKQEAgLTIwMSw2ICsyMTEsNTIgQEAKICAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0Uo
ZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCiAgICAgKTsKIAorI2VsaWYgQ09N
UElMRVIoR0NDKSAmJiBDUFUoTUlQUykKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhf
UkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxu
IiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJ
REVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAi
OiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFk
ZHJlc3MpIFwKKyAgICAgICAgIm1vdmUgJGExLCAkcmEiICJcbiIgXAorICAgICAgICAiYiAiIExP
Q0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICAp
OworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FQ0koZnVu
Y3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikg
IlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURf
RlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJt
b3ZlICRhMywgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rp
b24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElP
Tl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBc
CisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlv
bikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9T
VFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0
aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAyMCgkc3ApIiAiXG4i
IFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRk
cmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVU
VVJOX0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxu
IiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJ
REVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAi
OiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFk
ZHJlc3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjQoJHNwKSIgIlxuIiBcCisgICAgICAgICJiICIg
TE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAg
ICk7CisKICNlbmRpZgogCiAjZGVmaW5lIFBfRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9B
RERSRVNTX0UoZnVuY3Rpb24pIFwKQEAgLTE1MDYsNiArMTU2MiwxNyBAQCBTWU1CT0xfU1RSSU5H
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgIm1vdiByMCwgcjUiICJcbiIK
ICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZSkgIlxuIgogKTsKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKE1JUFMpCithc20oCisi
LnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJP
TF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICBMT0FEX0ZVTkNU
SU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQorICAgICJsdyAk
czAsIC00MCgkczApIiAiXG4iCisgICAgIm1vdmUgJGEwLCAkczAiICJcbiIKKyAgICAiYiAiIExP
Q0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgor
KTsKICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5f
VkFMVUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0
ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggNWRkYjk4
ZC4uNzBjNzYyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTI4
MCwxMSArMjgwLDEzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VU
ICAgICAgICAgNjQKICNkZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAgICAgIDY4CiAjZGVm
aW5lIFBSRVNFUlZFRF9TMl9PRkZTRVQgICAgICAgICA3MgotI2RlZmluZSBQUkVTRVJWRURfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUIDc2Ci0jZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNF
VCA4MAotI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgODQKLSNkZWZpbmUgR0xP
QkFMX0RBVEFfT0ZGU0VUICAgICAgICAgMTAwCi0jZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAg
ICAgICAgIDEwNAorI2RlZmluZSBQUkVTRVJWRURfUzNfT0ZGU0VUICAgICAgICAgNzYKKyNkZWZp
bmUgUFJFU0VSVkVEX1M0X09GRlNFVCAgICAgICAgIDgwCisjZGVmaW5lIFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQgODQKKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
IDg4CisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA5MgorI2RlZmluZSBHTE9C
QUxfREFUQV9PRkZTRVQgICAgICAgICAxMDgKKyNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAg
ICAgICAgMTEyCiAjZWxpZiBDUFUoU0g0KQogI2RlZmluZSBTWU1CT0xfU1RSSU5HKG5hbWUpICNu
YW1lCiAvKiBjb2RlIChyNCksIEpTU3RhY2sqIChyNSksIENhbGxGcmFtZSogKHI2KSwgdm9pZCog
dW51c2VkMSAocjcpLCB2b2lkKiB1bnVzZWQyKHNwKSwgSlNHbG9iYWxEYXRhIChzcCkqLwpAQCAt
MzE4LDYgKzMyMCw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAg
ICAiYWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIKKyIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9M
KGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkg
IjoiICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkBAIC00NTEsNiArNDU2LDggQEAgYXNtICgK
IFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAiYWRkaXUgJDI5LCQy
OSwtIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAgICAgInN3ICAgICQz
MSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKKyAgICAic3cgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZF
RF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMTksIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxOCwi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAg
ICAic3cgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIo
JDI5KSIgIlxuIgogICAgICJzdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCkBAIC00NjcsMTIgKzQ3NCwxNyBAQCBTWU1CT0xfU1RS
SU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgog
ICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogIi5zZXQgcmVvcmRlciIgIlxuIgog
Ii5zZXQgbWFjcm8iICJcbiIKICIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAi
XG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURF
X1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xp
bmVFbmQpICI6IiAiXG4iCiApOwogCiBhc20gKApAQCAtNDg1LDggKzQ5Nyw4IEBAIGFzbSAoCiAi
LmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKIFNZTUJPTF9T
VFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAjaWYgV1RGX01JUFNfUElDCi0g
ICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1BfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCisiLmNwbG9hZCAkMzEiICJcbiIKICAgICAi
bGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKICIuc2V0IG5vbWFj
cm8iICJcbiIKICAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKQEAg
LTQ5OCw2ICs1MTAsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIg
IlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09G
RlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAg
ICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZG
U0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAk
MzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19M
RU5HVEgpICJcbiIKQEAgLTUxOCw2ICs1MzIsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dO
b3RDYXVnaHQpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAg
ICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZG
U0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEsIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4i
CiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtODE1LDYgKzgzMSw4IEBAIEpJVFRodW5rczo6
SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJFU0VSVkVEX1Mw
X09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9PSBQUkVTRVJW
RURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRTMykgPT0gUFJFU0VSVkVEX1MzX09GRlNFVCk7CisgICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzQpID09IFBS
RVNFUlZFRF9TNF9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5f
QUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBz
dGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwpAQCAtMTEwOCw5ICsxMTI2LDkgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFQgdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKEpJVFN0
YWNrRnJhbWUmIGppdFN0YWNrRnIKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3Rp
XyMjb3ApICJcbiIgXAogICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJc
biIgXAogICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCi0gICAgICAg
ICJsdyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigk
MjkpIiAiXG4iIFwKLSAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVO
S19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICIuc2V0IG1h
Y3JvIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAgInN3ICAg
ICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIo
JDI5KSIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJU
aHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNldCBub21hY3JvIiAiXG4iIFwKICAgICAg
ICAgIi5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRf
IyNvcCkgIlxuIiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKaW5kZXggNTc2MTIz
Ni4uODQyNzhkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApAQCAtMjI2LDYg
KzIyNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMDsKICAg
ICAgICAgdm9pZCogcHJlc2VydmVkUzE7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAg
ICAgICB2b2lkKiBwcmVzZXJ2ZWRTMzsKKyAgICAgICAgdm9pZCogcHJlc2VydmVkUzQ7CiAgICAg
ICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CiAKICAgICAgICAgUmV0dXJuQWRkcmVz
c1B0ciB0aHVua1JldHVybkFkZHJlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZGEyZDUxMC4uMTU3NTIxMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZp
Zy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25m
aWcuaApAQCAtMzgsNiArMzgsNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12NyAwCiAjZGVm
aW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3cyAwCisj
ZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0NfTE9P
UCkKIApAQCAtNjcsNiArNjgsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNl
bmRpZgogCisjaWYgQ1BVKE1JUFMpCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMQorI2Vsc2UK
KyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZW5kaWYKKwogI2VuZGlmIC8vICFFTkFCTEUo
TExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExMSw0ICsxMTgsMTcgQEAK
ICNkZWZpbmUgT0ZGTElORV9BU01fVkFMVUVfUFJPRklMRVIgMAogI2VuZGlmCiAKKyNpZiBDUFUo
TUlQUykKKyNpZmRlZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgUyh4KSAjeAorI2RlZmluZSBTWCh4
KSBTKHgpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcpIFwKKyAgICAiLnNldCBub3Jl
b3JkZXJcbiIgXAorICAgICIuY3Bsb2FkICIgU1gocmVnKSAiXG4iIFwKKyAgICAiLnNldCByZW9y
ZGVyXG4iCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVnKQorI2VuZGlmCisj
ZW5kaWYKKwogI2VuZGlmIC8vIExMSW50T2ZmbGluZUFzbUNvbmZpZ19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggYmE1
YjY3ZC4uYjlmOWFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTc5LDEwICsxNzksOCBAQCBtYWNybyBhc3NlcnQo
YXNzZXJ0aW9uKQogZW5kCiAKIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChk
ZXN0aW5hdGlvblJlZ2lzdGVyKQotICAgIGlmIENfTE9PUAotICAgICAgICAjIEluIG91ciBjYXNl
LCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4gCi0gICAgICAgIG1vdmUg
bHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAgICBlbHNpZiBBUk12NworCWlmIENfTE9PUCBvciBB
Uk12NyBvciBNSVBTCisgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2Vy
dmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lz
dGVyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBwb3AgZGVzdGluYXRpb25SZWdp
c3RlcgpAQCAtMTkyLDEwICsxOTAsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKIGVuZAogCiBtYWNybyByZXN0b3JlUmV0dXJuQWRk
cmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBDX0xPT1AKLSAgICAgICAg
IyBJbiBvdXIgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4gCi0g
ICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgQVJNdjcKKwlpZiBDX0xP
T1Agb3IgQVJNdjcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5
IHJlc3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVy
LCBscgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3Rl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQppbmRleCBmZmIxNDYyLi5hMjI0MzBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bQpAQCAtMTEzLDYgKzExMywxMCBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIp
CiAgICAgICAgIHBva2UgYXJnMSwgMAogICAgICAgICBwb2tlIGFyZzIsIDEKICAgICAgICAgY2Fs
bCBmdW5jdGlvbgorICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAgICAg
ICBtb3ZlIGFyZzIsIGExCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AK
ICAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggZnVuY3Rpb24sIGFyZzEsIGFyZzIKICAgICBlbHNl
CkBAIC0xMzQsNiArMTM4LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwg
YXJnMywgYXJnNCkKICAgICAgICAgcG9rZSBhcmczLCAyCiAgICAgICAgIHBva2UgYXJnNCwgMwog
ICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFyZzEs
IGEwCisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgbW92ZSBhcmczLCBhMgorICAgICAg
ICBtb3ZlIGFyZzQsIGEzCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AK
ICAgICAgICAgZXJyb3IKICAgICBlbHNlCkBAIC0xNzU5LDYgKzE3NjksMjAgQEAgbWFjcm8gbmF0
aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGNh
bGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9i
YWxEYXRhW3NwXSwgdDMKKyAgICBlbHNpZiBNSVBTCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJh
bWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6
OnRvcENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92ZSB0MCwgdDIKKyAgICAgICAgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nm
cl0KKyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRP
ZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Qx
XSwgdDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIG1vdmUgdDAsIGEwCisgICAgICAg
IGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3RvcmVSZXR1
cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpn
bG9iYWxEYXRhW3NwXSwgdDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAgSklUU3Rh
Y2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFs
RGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtdjcucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm12Ny5yYgppbmRleCAwNzhiZThjLi5kN2QwNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm12Ny5yYgpAQCAtMTc5LDcgKzE3OSw4IEBAIGNsYXNzIFNlcXVlbmNlCiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQp
CiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0KQog
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwgMC4u
MHhmZikKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJlc3Vs
dCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9uKHJl
c3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lm
aWMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3Vs
dCkKICAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQs
IDpncHIsIEFSTXY3X0VYVFJBX0dQUlMpCiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVy
c1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCA3OGU1NDU3Li5lZjkz
NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5k
cy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgpA
QCAtMjUsNiArMjUsNyBAQCByZXF1aXJlICJjb25maWciCiByZXF1aXJlICJhcm12NyIKIHJlcXVp
cmUgImFzdCIKIHJlcXVpcmUgIng4NiIKK3JlcXVpcmUgIm1pcHMiCiByZXF1aXJlICJjbG9vcCIK
IAogQkFDS0VORFMgPQpAQCAtMzIsNiArMzMsNyBAQCBCQUNLRU5EUyA9CiAgICAgICJYODYiLAog
ICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKKyAgICAgIk1JUFMiLAogICAgICAiQ19MT09Q
IgogICAgIF0KIApAQCAtNDUsNiArNDcsNyBAQCBXT1JLSU5HX0JBQ0tFTkRTID0KICAgICAgIlg4
NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAorICAgICAiTUlQUyIsCiAgICAgICJD
X0xPT1AiCiAgICAgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIKaW5kZXggZTA0N2IyYS4uNGU3MDYyNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtMjY1LDYgKzI2NSwx
NiBAQCBBUk12N19JTlNUUlVDVElPTlMgPQogICAgICAib3JpcyIKICAgICBdCiAKK01JUFNfSU5T
VFJVQ1RJT05TID0KKyAgICBbCisgICAgIm1vdnoiLAorICAgICJtb3ZuIiwKKyAgICAic2x0IiwK
KyAgICAic2x0dSIsCisgICAgInBpY2hkciIsCisgICAgInBpY2hkcnJhIgorICAgIF0KKwogQ1hY
X0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAiY2xvb3BDcmFzaCIsICAgICAgICAgICAjIG5v
IG9wZXJhbmRzCkBAIC0yODEsNyArMjkxLDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgICJj
bG9vcERvIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNUSU9O
UyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk12N19JTlNUUlVD
VElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCitJTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElP
TlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVD
VElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdleHAu
bmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCA0NGI0ZGJkLi40OTFhM2Nj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTYzLDEwICs2
Myw2IEBAIGRlZiByaXNjTG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwg
W25vZGUub3BlcmFuZHNbLTFdXSkKLSAgICAgICAgICAgIHdoZW4gJ2JtdWxpcycsICdibXVseics
ICdibXVsbnonCi0gICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAotICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
Im11bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKLSAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29u
ZGl0aW9uLCBbbm9kZS5vcGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVu
ZApAQCAtOTMsMTIgKzg5LDIyIEBAIGRlZiByaXNjTG93ZXJIYXJkQnJhbmNoT3BzKGxpc3QpCiAg
ICAgbmV3TGlzdCA9IFtdCiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKLSAgICAg
ICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbiBhbmQgbm9kZS5vcGNvZGUgPT0gImJtdWxpbyIK
LSAgICAgICAgICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAg
ICAgICAgIHRtcDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtu
b2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAx
XSwgbm9kZS5hbm5vdGF0aW9uKQotICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRp
YXRlLm5ldyhub2RlLmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0pCi0gICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAy
LCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24K
KyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNh
c2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gICJibXVsaW8iCisgICAgICAgICAgICAg
ICAgdG1wMSA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAg
IHRtcDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9k
ZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0s
IG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1l
ZGlhdGUubmV3KG5vZGUuY29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAx
LCB0bXAyLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3aGVuIC9eYm11bGkvCisg
ICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2Rl
Lm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9k
ZS5vcGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgZW5kCkBAIC00NDcsNyAr
NDUzLDcgQEAgZGVmIHJpc2NBc1JlZ2lzdGVycyhwcmVMaXN0LCBwb3N0TGlzdCwgb3BlcmFuZHMs
IHN1ZmZpeCkKICAgICBuZXdPcGVyYW5kcwogZW5kCiAKLWRlZiByaXNjTG93ZXJNaXNwbGFjZWRB
ZGRyZXNzZXMobGlzdCkKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24obGlz
dCkKICAgICBuZXdMaXN0ID0gW10KICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfApA
QCAtNDgzLDYgKzQ4OSwyNSBAQCBkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3Qp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0
ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJkIiksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbikKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAg
bmV3TGlzdAorZW5kCisKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhs
aXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8
CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0
cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgor
ICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAiam1wIiwgImNh
bGwiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUu
b3Bjb2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAyNGY2MjExLi45Yjc2N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTExLTA4ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAg
ICAgTUlQUyBMTEludCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0xMS0wOCAgTWljaGFlbCBTYWJvZmYgIDxt
c2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXNoQW5kVVRGOENoYXJhY3RlcnNUcmFuc2xh
dG9yIHNob3VsZCBjcmVhdGUgYW4gOCBiaXQgc3RyaW5nIGlmIHBvc3NpYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApp
bmRleCAwYWI4MDg2Li5lMDA5Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTkyNSw3ICs5MjUsNyBAQAog
ICAgICYmIEVOQUJMRShKSVQpIFwKICAgICAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkpIFwK
ICAgICAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEdUSykg
fHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhMSU5VWCkpKSBcCi0gICAgJiYgKENQVShYODYpIHx8IENQ
VShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSkKKyAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkKICNkZWZpbmUgRU5BQkxFX0xM
SU5UIDEKICNlbmRpZgogCg==
</data>
<flag name="commit-queue"
          id="187655"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173091</attachid>
            <date>2012-11-08 12:22:18 -0800</date>
            <delta_ts>2012-11-14 04:24:14 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57715</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ4ZDY2NDcuLjcxNGU5MWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTA4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRo
dW5rcyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJi
OiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6CisKIDIwMTItMTEtMDggIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgT3BhcXVlSlNDbGFz
c0NvbnRleHREYXRhKCkgc2hvdWxkIHVzZSBTdHJpbmdJbXBsOjppc29sYXRlZENvcHkoKSB0byBt
YWtlIHN0cmluZyBjb3BpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IGZjNmY5ZjQuLjI5ZGYyNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aApAQCAtMTMwNCw3ICsxMzA0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBqdW1wKFJlZ2lzdGVy
SUQgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuanIodGFyZ2V0KTsKKyAgICAg
ICAgbW92ZSh0YXJnZXQsIE1JUFNSZWdpc3RlcnM6OnQ5KTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
anIoTUlQU1JlZ2lzdGVyczo6dDkpOwogICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDBl
NDVlMjMuLjUxOThhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcApAQCAtNDcsNiArNDcsMTYgQEAKIAogI2lmIEVOQUJMRShKSVQpCiAKKyNpZiBDUFUo
TUlQUykgJiYgV1RGX01JUFNfUElDCisjZGVmaW5lIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rp
b24pIFwKKyAgICAgICAgIi5zZXQgbm9yZW9yZGVyIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQg
JDI1IiAiXG4iIFwKKyAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCisgICAgICAgICJsYSAk
dDksICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iCisjZWxzZQorI2RlZmluZSBMT0FE
X0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSAiIiAiXG4iCisjZW5kaWYKKwogI2lmIEVOQUJMRShE
RkdfSklUKQogCiAjaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoWDg2XzY0KQpAQCAtMjAxLDYgKzIx
MSw1MiBAQAogICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1
cm5BZGRyZXNzIiAiXG4iIFwKICAgICApOwogCisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShN
SVBTKQorCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FKGZ1
bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24p
ICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FE
X0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAi
bW92ZSAkYTEsICRyYSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0
aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJ
T05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VDSShmdW5jdGlvbikgXAorICAgIGFzbSgg
XAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rp
b24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xf
U1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5j
dGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgIm1vdmUgJGEzLCAkcmEiICJcbiIg
XAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRy
ZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRV
Uk5fQUREUkVTU19FSkkoZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIg
XAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURF
X1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoi
ICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRy
ZXNzKSBcCisgICAgICAgICJzdyAkcmEsIDIwKCRzcCkiICJcbiIgXAorICAgICAgICAiYiAiIExP
Q0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICAp
OworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkNJKGZ1
bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24p
ICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FE
X0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAi
c3cgJHJhLCAyNCgkc3ApIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVu
Y3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKwogI2VuZGlmCiAKICNk
ZWZpbmUgUF9GVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikg
XApAQCAtMTUwNiw2ICsxNTYyLDE3IEBAIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZSkgIjoiICJcbiIKICAgICAibW92IHIwLCByNSIgIlxuIgogICAgICJiICIgTE9DQUxfUkVG
RVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOworI2Vs
aWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoTUlQUykKK2FzbSgKKyIudGV4dCIgIlxuIgorIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgorSElERV9TWU1C
T0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgorU1lNQk9MX1NUUklORyhnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiOiIgIlxuIgorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCisgICAgImx3ICRzMCwgLTQwKCRzMCkiICJcbiIK
KyAgICAibW92ZSAkYTAsICRzMCIgIlxuIgorICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCispOwogI2VuZGlmCiAKIGV4dGVy
biAiQyIgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCA1ZGRiOThkLi43MGM3NjJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMjgwLDExICsyODAsMTMgQEAgZXh0
ZXJuICJDIiB7CiAjZGVmaW5lIFBSRVNFUlZFRF9TMF9PRkZTRVQgICAgICAgICA2NAogI2RlZmlu
ZSBQUkVTRVJWRURfUzFfT0ZGU0VUICAgICAgICAgNjgKICNkZWZpbmUgUFJFU0VSVkVEX1MyX09G
RlNFVCAgICAgICAgIDcyCi0jZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQg
NzYKLSNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDgwCi0jZGVmaW5lIFJFR0lT
VEVSX0ZJTEVfT0ZGU0VUICAgICAgICA4NAotI2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQgICAg
ICAgICAxMDAKLSNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAgICAgMTA0CisjZGVmaW5l
IFBSRVNFUlZFRF9TM19PRkZTRVQgICAgICAgICA3NgorI2RlZmluZSBQUkVTRVJWRURfUzRfT0ZG
U0VUICAgICAgICAgODAKKyNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4
NAorI2RlZmluZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQgODgKKyNkZWZpbmUgUkVHSVNU
RVJfRklMRV9PRkZTRVQgICAgICAgIDkyCisjZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAg
ICAgIDEwOAorI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAgICAxMTIKICNlbGlmIENQ
VShTSDQpCiAjZGVmaW5lIFNZTUJPTF9TVFJJTkcobmFtZSkgI25hbWUKIC8qIGNvZGUgKHI0KSwg
SlNTdGFjayogKHI1KSwgQ2FsbEZyYW1lKiAocjYpLCB2b2lkKiB1bnVzZWQxIChyNyksIHZvaWQq
IHVudXNlZDIoc3ApLCBKU0dsb2JhbERhdGEgKHNwKSovCkBAIC0zMTgsNiArMzIwLDkgQEAgU1lN
Qk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJhZGQgIzEyLCByMTUiICJc
biIKICAgICAicnRzIiAiXG4iCiAgICAgIm5vcCIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJ
TkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGluZUVuZCkg
IlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogKTsKIAogYXNt
IHZvbGF0aWxlICgKQEAgLTQ1MSw2ICs0NTYsOCBAQCBhc20gKAogU1lNQk9MX1NUUklORyhjdGlU
cmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LC0iIFNUUklOR0laRV9WQUxV
RV9PRihTVEFDS19MRU5HVEgpICJcbiIKICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJz
dyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkp
IiAiXG4iCisgICAgInN3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAic3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTcsIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3
ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKQEAgLTQ2NywxMiArNDc0LDE3IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkg
IjoiICJcbiIKICAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9T
MF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAi
bHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5
KSIgIlxuIgorICAgICJsdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0
X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIg
ICAgJDMxIiAiXG4iCiAgICAgImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RB
Q0tfTEVOR1RIKSAiXG4iCiAiLnNldCByZW9yZGVyIiAiXG4iCiAiLnNldCBtYWNybyIgIlxuIgog
Ii5lbmQgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKKyIuZ2xvYmwgIiBTWU1C
T0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xp
bmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7
CiAKIGFzbSAoCkBAIC00ODUsOCArNDk3LDggQEAgYXNtICgKICIuZW50ICIgU1lNQk9MX1NUUklO
RyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgogU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJh
bXBvbGluZSkgIjoiICJcbiIKICNpZiBXVEZfTUlQU19QSUMKLSAgICAibHcgICAgJDI4LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIgogIi5zZXQg
bWFjcm8iICJcbiIKKyIuY3Bsb2FkICQzMSIgIlxuIgogICAgICJsYSAgICAkMjUsIiBTWU1CT0xf
U1RSSU5HKGN0aV92bV90aHJvdykgIlxuIgogIi5zZXQgbm9tYWNybyIgIlxuIgogICAgICJiYWwg
IiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJvdykgIlxuIgpAQCAtNDk4LDYgKzUxMCw4IEBAIFNZ
TUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQx
NiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIK
ICAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQp
ICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VS
VkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIw
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgog
ICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERS
RVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRp
dSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtNTE4
LDYgKzUzMiw4IEBAIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICJcbiIK
ICAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQp
ICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VS
VkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgor
ICAgICJsdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkg
IigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAi
XG4iCiAgICAgImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RI
KSAiXG4iCkBAIC04MTUsNiArODMxLDggQEAgSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhKQogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHByZXNlcnZlZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKICAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0g
UFJFU0VSVkVEX1MxX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOworICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMz
KSA9PSBQUkVTRVJWRURfUzNfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTNCkgPT0gUFJFU0VSVkVEX1M0X09GRlNFVCk7
CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUmV0dXJuQWRkcmVzcykgPT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CiAg
ICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1
cm5BZGRyZXNzKSA9PSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9G
SUxFX09GRlNFVCk7CkBAIC0xMTA4LDkgKzExMjYsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dGF0aWMgVCB0aHJvd0V4Y2VwdGlvbkZyb21PcENhbGwoSklUU3RhY2tGcmFtZSYgaml0U3RhY2tG
cgogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCiAgICAg
ICAgICIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCiAgICAgICAgIFNZTUJP
TF9TVFJJTkcoY3RpXyMjb3ApICI6IiAiXG4iIFwKLSAgICAgICAgImx3ICAgICQyOCwiIFNUUklO
R0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAotICAgICAg
ICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09G
RlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAgICAgIi5zZXQgbWFjcm8iICJcbiIgXAorICAgICAg
ICAiLmNwbG9hZCAkMjUiICJcbiIgXAorICAgICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAg
ICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRfIyNvcCkgIlxuIiBc
CiAgICAgICAgICIuc2V0IG5vbWFjcm8iICJcbiIgXAogICAgICAgICAiLnJlbG9jIDFmLFJfTUlQ
U19KQUxSLCIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAppbmRleCA1NzYxMjM2Li44NDI3OGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCkBAIC0yMjYsNiArMjI2LDggQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMwOwogICAgICAgICB2b2lkKiBwcmVzZXJ2
ZWRTMTsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzI7CisgICAgICAgIHZvaWQqIHByZXNlcnZl
ZFMzOworICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTNDsKICAgICAgICAgdm9pZCogcHJlc2VydmVk
UmV0dXJuQWRkcmVzczsKIAogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRk
cmVzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxp
bmVBc21Db25maWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVB
c21Db25maWcuaAppbmRleCBkYTJkNTEwLi4xNTc1MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0zOCw2ICszOCw3
IEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3IDAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2
XzY0IDAKICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjdzIDAKKyNkZWZpbmUgT0ZGTElORV9BU01f
TUlQUyAwCiAKICNlbHNlIC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQogCkBAIC02Nyw2ICs2OCwx
MiBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9YODZfNjQgMAogI2VuZGlmCiAKKyNpZiBDUFUoTUlQ
UykKKyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FT
TV9NSVBTIDAKKyNlbmRpZgorCiAjZW5kaWYgLy8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAKICNp
ZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTExLDQgKzExOCwxNyBAQAogI2RlZmluZSBPRkZMSU5FX0FT
TV9WQUxVRV9QUk9GSUxFUiAwCiAjZW5kaWYKIAorI2lmIENQVShNSVBTKQorI2lmZGVmIFdURl9N
SVBTX1BJQworI2RlZmluZSBTKHgpICN4CisjZGVmaW5lIFNYKHgpIFMoeCkKKyNkZWZpbmUgT0ZG
TElORV9BU01fQ1BMT0FEKHJlZykgXAorICAgICIuc2V0IG5vcmVvcmRlclxuIiBcCisgICAgIi5j
cGxvYWQgIiBTWChyZWcpICJcbiIgXAorICAgICIuc2V0IHJlb3JkZXJcbiIKKyNlbHNlCisjZGVm
aW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcpCisjZW5kaWYKKyNlbmRpZgorCiAjZW5kaWYgLy8g
TExJbnRPZmZsaW5lQXNtQ29uZmlnX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBiYTViNjdkLi5mMWIyODYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCkBAIC0xNzksMTAgKzE3OSw4IEBAIG1hY3JvIGFzc2VydChhc3NlcnRpb24pCiBlbmQKIAog
bWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIp
Ci0gICAgaWYgQ19MT09QCi0gICAgICAgICMgSW4gb3VyIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2Vy
dmluZyB0aGUgYnl0ZWNvZGUgdlBDLiAKLSAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdp
c3RlcgotICAgIGVsc2lmIEFSTXY3CisgICAgaWYgQ19MT09QIG9yIEFSTXY3IG9yIE1JUFMKKyAg
ICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5nIHRoZSBieXRlY29k
ZSB2UEMuCiAgICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBlbHNpZiBY
ODYgb3IgWDg2XzY0CiAgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCkBAIC0xOTIsMTAg
KzE5MCw4IEBAIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlv
blJlZ2lzdGVyKQogZW5kCiAKIG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIENfTE9PUAotICAgICAgICAjIEluIG91ciBjYXNlLCB3
ZSdyZSBvbmx5IHJlc3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLiAKLSAgICAgICAgbW92ZSBzb3Vy
Y2VSZWdpc3RlciwgbHIKLSAgICBlbHNpZiBBUk12NworICAgIGlmIENfTE9PUCBvciBBUk12NyBv
ciBNSVBTCisgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcmVzdG9yaW5nIHRo
ZSBieXRlY29kZSB2UEMuCiAgICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCiAgICAgZWxz
aWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtCmluZGV4IGZmYjE0NjIuLmEyMjQzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMTMsNiAr
MTEzLDEwIEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgcG9r
ZSBhcmcxLCAwCiAgICAgICAgIHBva2UgYXJnMiwgMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisg
ICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1vdmUgYXJnMiwg
YTEKKyAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBjbG9v
cENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYXJnMSwgYXJnMgogICAgIGVsc2UKQEAgLTEzNCw2ICsx
MzgsMTIgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQog
ICAgICAgICBwb2tlIGFyZzMsIDIKICAgICAgICAgcG9rZSBhcmc0LCAzCiAgICAgICAgIGNhbGwg
ZnVuY3Rpb24KKyAgICBlbHNpZiBNSVBTCisgICAgICAgIG1vdmUgYXJnMSwgYTAKKyAgICAgICAg
bW92ZSBhcmcyLCBhMQorICAgICAgICBtb3ZlIGFyZzMsIGEyCisgICAgICAgIG1vdmUgYXJnNCwg
YTMKKyAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBlcnJv
cgogICAgIGVsc2UKQEAgLTE3NTksNiArMTc2OSwyMCBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBv
bGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKICAgICAgICAgY2FsbCBleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvblt0MV0KICAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4odDMpCiAgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0
MworICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0
YVtzcF0sIHQzCisgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1l
W3QzXQorICAgICAgICBtb3ZlIHQwLCB0MgorICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NB
ZnRlckNhbGwodDMpCisgICAgICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQorICAgICAgICBt
b3ZlIGNmciwgdDAKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAg
ICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgbW92ZSB0MCwgYTAKKyAgICAgICAgY2FsbCBleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4odDMpCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3Bd
LCB0MwogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9i
YWxEYXRhW3NwXSwgdDMKICAgICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxs
RnJhbWVbdDNdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm12Ny5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCmluZGV4
IDA3OGJlOGMuLmQ3ZDA0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybXY3LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fy
bXY3LnJiCkBAIC0xNzksNyArMTc5LDggQEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgcmVzdWx0
ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91YmxlKHJlc3VsdCkKICAgICAgICAgcmVz
dWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCiAgICAgICAgIHJlc3Vs
dCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVzdWx0LCAwLi4weGZmKQotICAgICAg
ICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0KQorICAgICAgICBy
ZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24ocmVzdWx0KQorICAgICAg
ICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhyZXN1bHQpCiAg
ICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJlZ2lzdGVyUmV1c2UocmVzdWx0KQogICAgICAgICBy
ZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgQVJNdjdf
RVhUUkFfR1BSUykKICAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jhcmll
cyhyZXN1bHQsIDpmcHIsIEFSTXY3X0VYVFJBX0ZQUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCmluZGV4IDc4ZTU0NTcuLmVmOTM1OGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCkBAIC0yNSw2ICsyNSw3
IEBAIHJlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImFybXY3IgogcmVxdWlyZSAiYXN0IgogcmVx
dWlyZSAieDg2IgorcmVxdWlyZSAibWlwcyIKIHJlcXVpcmUgImNsb29wIgogCiBCQUNLRU5EUyA9
CkBAIC0zMiw2ICszMyw3IEBAIEJBQ0tFTkRTID0KICAgICAgIlg4NiIsCiAgICAgICJYODZfNjQi
LAogICAgICAiQVJNdjciLAorICAgICAiTUlQUyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCkBA
IC00NSw2ICs0Nyw3IEBAIFdPUktJTkdfQkFDS0VORFMgPQogICAgICAiWDg2IiwKICAgICAgIlg4
Nl82NCIsCiAgICAgICJBUk12NyIsCisgICAgICJNSVBTIiwKICAgICAgIkNfTE9PUCIKICAgICBd
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5y
YgppbmRleCBlMDQ3YjJhLi40ZTcwNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC0yNjUsNiArMjY1LDE2IEBAIEFSTXY3X0lO
U1RSVUNUSU9OUyA9CiAgICAgICJvcmlzIgogICAgIF0KIAorTUlQU19JTlNUUlVDVElPTlMgPQor
ICAgIFsKKyAgICAibW92eiIsCisgICAgIm1vdm4iLAorICAgICJzbHQiLAorICAgICJzbHR1IiwK
KyAgICAicGljaGRyIiwKKyAgICAicGljaGRycmEiCisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05T
ID0KICAgICBbCiAgICAgICJjbG9vcENyYXNoIiwgICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAg
LTI4MSw3ICsyOTEsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNsb29wRG8iLCAgICAg
ICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5T
VFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIENYWF9J
TlNUUlVDVElPTlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNU
UlVDVElPTlMgKyBBUk12N19JTlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIENYWF9J
TlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJT05fUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgoJyAr
IElOU1RSVUNUSU9OUy5qb2luKCcpfCgnKSArICcpKVxcWicpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9taXBzLnJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjYzMzQ0MmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9taXBzLnJiCkBAIC0wLDAgKzEsODY4IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBNSVBTIFRl
Y2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIE1JUFMgVEVDSE5PTE9HSUVTLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgTUlQUyBURUNITk9MT0dJRVMsIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCityZXF1aXJlICdyaXNjJworCitjbGFzcyBBc3NlbWJs
ZXIKKyAgICBkZWYgcHV0U3RyKHN0cikKKyAgICAgICAgQG91dHAucHV0cyBzdHIKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBOb2RlCisgICAgZGVmIG1pcHNTaW5nbGVIaQorICAgICAgICBkb3VibGVP
cGVyYW5kID0gbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUg
I3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15cJGYvCisgICAgICAg
ICIkZiIgKyAoJH4ucG9zdF9tYXRjaC50b19pICsgMSkudG9fcworICAgIGVuZAorICAgIGRlZiBt
aXBzU2luZ2xlTG8KKyAgICAgICAgZG91YmxlT3BlcmFuZCA9IG1pcHNPcGVyYW5kCisgICAgICAg
IHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3Vi
bGVPcGVyYW5kID1+IC9eXCRmLworICAgICAgICBkb3VibGVPcGVyYW5kCisgICAgZW5kCitlbmQK
KworY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBtaXBzT3BlcmFu
ZAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisgICAgZGVmIGR1bXAKKyAgICAgICAgQG5hbWUK
KyAgICBlbmQKKworICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5k
CisKK01JUFNfVEVNUF9HUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NSIpLCBTcGVjaWFs
UmVnaXN0ZXIubmV3KCIkdDYiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ3IiksCisgICAgICAg
ICAgICAgICAgICAgIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OCIpXQorTUlQU19URU1QX0ZQUlMg
PSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygiJGYxNiIpXQorTUlQU19TQ1JBVENIX0ZQUiA9IFNwZWNp
YWxSZWdpc3Rlci5uZXcoIiRmMTgiKQorCitkZWYgbWlwc01vdmVJbW1lZGlhdGUodmFsdWUsIHJl
Z2lzdGVyKQorICAgIGlmIHZhbHVlID09IDAKKyAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tyZWdp
c3Rlci5taXBzT3BlcmFuZH0sICR6ZXJvLCAkemVybyIKKyAgICBlbHNlCisgICAgICAgICRhc20u
cHV0cyAibGkgI3tyZWdpc3Rlci5taXBzT3BlcmFuZH0sICN7dmFsdWV9IgorICAgIGVuZAorZW5k
CisKKworY2xhc3MgUmVnaXN0ZXJJRAorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNl
IG5hbWUKKyAgICAgICAgd2hlbiAiYTAiCisgICAgICAgICAgICAiJGEwIgorICAgICAgICB3aGVu
ICJhMSIKKyAgICAgICAgICAgICIkYTEiCisgICAgICAgIHdoZW4gInIwIiwgInQwIgorICAgICAg
ICAgICAgIiR2MCIKKyAgICAgICAgd2hlbiAicjEiLCAidDEiCisgICAgICAgICAgICAiJHYxIgor
ICAgICAgICB3aGVuICJ0MiIKKyAgICAgICAgICAgICIkdDIiCisgICAgICAgIHdoZW4gInQzIgor
ICAgICAgICAgICAgIiRzMyIKKyAgICAgICAgd2hlbiAidDQiICAgIyBQQyByZWcgaW4gbGxpbnQK
KyAgICAgICAgICAgICIkczIiCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgIiR0NSIK
KyAgICAgICAgd2hlbiAidDYiCisgICAgICAgICAgICAiJHQ2IgorICAgICAgICB3aGVuICJ0NyIK
KyAgICAgICAgICAgICIkdDciCisgICAgICAgIHdoZW4gInQ4IgorICAgICAgICAgICAgIiR0OCIK
KyAgICAgICAgd2hlbiAiY2ZyIgorICAgICAgICAgICAgIiRzMCIKKyAgICAgICAgd2hlbiAibHIi
CisgICAgICAgICAgICAiJHJhIgorICAgICAgICB3aGVuICJzcCIKKyAgICAgICAgICAgICIkc3Ai
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBm
b3IgTUlQUyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2Vu
ZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgY2Fz
ZSBuYW1lCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIKKyAgICAgICAgICAgICIkZjAiCisgICAg
ICAgIHdoZW4gImZ0MSIKKyAgICAgICAgICAgICIkZjIiCisgICAgICAgIHdoZW4gImZ0MiIKKyAg
ICAgICAgICAgICIkZjQiCisgICAgICAgIHdoZW4gImZ0MyIKKyAgICAgICAgICAgICIkZjYiCisg
ICAgICAgIHdoZW4gImZ0NCIKKyAgICAgICAgICAgICIkZjgiCisgICAgICAgIHdoZW4gImZ0NSIK
KyAgICAgICAgICAgICIkZjEwIgorICAgICAgICB3aGVuICJmYTAiCisgICAgICAgICAgICAiJGYx
MiIKKyAgICAgICAgd2hlbiAiZmExIgorICAgICAgICAgICAgIiRmMTQiCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgTUlQUyBhdCAje2Nv
ZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbW1l
ZGlhdGUKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkludmFsaWQgaW1tZWRp
YXRlICN7dmFsdWV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIGlmIHZhbHVlIDwgLTB4N2ZmZiBv
ciB2YWx1ZSA+IDB4N2ZmZgorICAgICAgICAiI3t2YWx1ZX0iCisgICAgZW5kCitlbmQKKworY2xh
c3MgQWRkcmVzcworICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiQmFkIG9mZnNl
dCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiBvZmZzZXQudmFsdWUgPCAtMHg3ZmZmIG9yIG9m
ZnNldC52YWx1ZSA+IDB4N2ZmZgorICAgICAgICAiI3tvZmZzZXQudmFsdWV9KCN7YmFzZS5taXBz
T3BlcmFuZH0pIgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAgIGRl
ZiBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiVW5jb252ZXJ0ZWQgYWJzb2x1dGUgYWRkcmVz
cyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXIgJ2Fu
ZCcgbWFza2VkIGJyYW5jaGVzCisjCisKK2RlZiBsb3dlck1JUFNDb25kQnJhbmNoKGxpc3QsIGNv
bmRPcCwgbm9kZSkKKyAgICBpZiBub2RlLm9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICBsaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbmRPcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25v
ZGUub3BlcmFuZHNbMF0sIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFu
ZHNbLTFdXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9u
KQorICAgIGVsc2lmIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIHRtcCA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmRp
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIG5v
ZGUub3BlcmFuZHNbMV0sIHRtcF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUuYW5ub3RhdGlvbikKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kT3AsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJv
IiksIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJFeHBlY3Rl
ZCAyIG9yIDMgb3BlcmFuZHMgYnV0IGdvdCAje25vZGUub3BlcmFuZHMuc2l6ZX0gYXQgI3tub2Rl
LmNvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXJpbmcgb2YgYnJh
bmNoIG9wcy4gRm9yIGV4YW1wbGU6CisjCisjIGJhZGRpeiBmb28sIGJhciwgYmF6CisjCisjIHdp
bGwgYmVjb21lOgorIworIyBhZGRpIGZvbywgYmFyCisjIGJ6IGJhegorIworCitkZWYgbWlwc0xv
d2VyU2ltcGxlQnJhbmNoT3BzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNo
IHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgor
ICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAvXmIoYWRkaXxzdWJpfG9yaXxhZGRwKS8K
KyAgICAgICAgICAgICAgICBvcCA9ICQxCisgICAgICAgICAgICAgICAgYmMgPSAkfi5wb3N0X21h
dGNoCisgICAgICAgICAgICAgICAgYnJhbmNoID0gImIiICsgYmMKKworICAgICAgICAgICAgICAg
IGNhc2Ugb3AKKyAgICAgICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiCisgICAgICAgICAg
ICAgICAgICAgIG9wID0gImFkZGkiCisgICAgICAgICAgICAgICAgd2hlbiAic3ViaSIKKyAgICAg
ICAgICAgICAgICAgICAgb3AgPSAic3ViaSIKKyAgICAgICAgICAgICAgICB3aGVuICJvcmkiCisg
ICAgICAgICAgICAgICAgICAgIG9wID0gIm9yaSIKKyAgICAgICAgICAgICAgICBlbmQKKworICAg
ICAgICAgICAgICAgIHplcm8gPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpCisgICAgICAg
ICAgICAgICAgaWYgYmMgPT0gIm8iCisgICAgICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAg
ICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGFk
ZHUgJHMwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMx
LCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJvLCBubyBvdmVy
ZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMwLCAkczEKKyAgICAg
ICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJvLCBvdmVyZmxvdworICAgICAgICAg
ICAgICAgICAgICAgICAgIyBubyBvdmVyZmxvdzoKKyAgICAgICAgICAgICAgICAgICAgICAgICMK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpn
cHIpCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdp
biwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5p
cXVlKCJub2Zsb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxM
YWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9w
LCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdHJdLCBhbm5vdGF0aW9uKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0
bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vRmxvd1JlZl0pCisgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJ4b3JpIiwgW3RyLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmls
dCIsIFt0bXAsIHplcm8sIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbdHIsIG5vZGUub3BlcmFu
ZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIyAgc3VidSAkczAsICRzMSwgJHMyCisgICAgICAgICAgICAgICAgICAgICAgICAj
ICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYmdlICR0MCwg
JHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAk
czAsICRzMQorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYmx0ICR0MCwgJHplcm8sIG92ZXJm
bG93CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG92ZXJmbG93OgorICAgICAgICAgICAg
ICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAgICAgdHIgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXco
bm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgemVybyA9IFNw
ZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vRmxv
dyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAg
bm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zs
b3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwg
dHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRzWzFdLCBu
b2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlndGVxIiwgW3RtcCwgemVybywg
bm9GbG93UmVmXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV0sIHRt
cF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywgbm9kZS5vcGVyYW5kc1syXV0pCisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vRmxvdworICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92
ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIm9y
aSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgbm8gb3Z3ZXJmbG93IGF0IG9yaQorICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4xXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wZXJhbmRzWzFdLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFk
ZHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZHAiLCBbYWRkciwgdHJd
LCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMF0sIHRyXSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgInN0b3JlcCIsIFt0ciwgYWRkcl0pCisgICAgICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gbm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCBvcCwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW3RyLCB6ZXJvLCBub2RlLm9wZXJhbmRzWy0xXV0pCisg
ICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVuICJiaWEiLCAiYnBhIiwgImJiYSIK
KyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDog
InNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBd
XSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVy
byIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYWVxIiwgImJwYWVx
IiwgImJiYWVxIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2lu
LCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/
ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUu
b3BlcmFuZHNbMV1dLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVy
Lm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJiaWIi
LCAiYnBiIiwgImJiYiIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9y
aWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAi
YiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdLCBu
b2RlLm9wZXJhbmRzWzFdXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4g
ImJpYmVxIiwgImJwYmVxIiwgImJiYmVxIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXco
bm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29k
ZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3Bl
cmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF1dLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwg
U3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAg
ICAgICB3aGVuICJidGl6IiwgImJ0cHoiLCAiYnRieiIKKyAgICAgICAgICAgICAgICBsb3dlck1J
UFNDb25kQnJhbmNoKG5ld0xpc3QsICJieiIsIG5vZGUpCisgICAgICAgICAgICB3aGVuICJidGlu
eiIsICJidHBueiIsICJidGJueiIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNo
KG5ld0xpc3QsICJibnoiLCBub2RlKQorICAgICAgICAgICAgd2hlbiAiYnRpbyIsICJidHBvIiwg
ImJ0Ym8iCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICB3aGVu
ICJidGlzIiwgImJ0cHMiLCAiYnRicyIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJh
bmNoKG5ld0xpc3QsICJicyIsIG5vZGUpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0Citl
bmQKKworIworIyBTcGVjaWFsaXphdGlvbiBvZiBsb3dlcmluZyBvZiBtYWxmb3JtZWQgQmFzZUlu
ZGV4IGFkZHJlc3Nlcy4KKyMKKworY2xhc3MgQmFzZUluZGV4CisgICAgZGVmIHJpc2NMb3dlck1h
bGZvcm1lZEFkZHJlc3Nlc1JlY3Vyc2UobGlzdCwgbm9kZSwgJmJsb2NrKQorICAgICAgICBpZiBz
Y2FsZVNoaWZ0ID09IDAKKyAgICAgICAgICAgIHRtcDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpn
cHIpCisgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRk
cCIsIFtiYXNlLCBpbmRleCwgdG1wMF0pCisgICAgICAgICAgICBBZGRyZXNzLm5ldyhjb2RlT3Jp
Z2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIG9mZnNldC52YWx1ZSkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0bXAwID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxzaGlmdGki
LCBbaW5kZXgsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgc2NhbGVTaGlmdCksIHRtcDBdKTsK
KyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwg
W2Jhc2UsIHRtcDBdKQorICAgICAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wMCwg
SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBvZmZzZXQudmFsdWUpKTsKKyAgICAgICAgZW5kCisg
ICAgZW5kCitlbmQKKworIworIyBMb3dlcmluZyBvZiBtaXNwbGFjZWQgaW1tZWRpYXRlcyBvZiBN
SVBTIHNwZWNpZmljIGluc3RydWN0aW9ucy4gRm9yIGV4YW1wbGU6CisjCisjIHNsdHUgcmVnLCA0
LCAyCisjCisjIHdpbGwgYmVjb21lOgorIworIyBtb3ZlIDQsIHRtcAorIyBzbHR1IHJlZywgdG1w
LCAyCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKGxpc3QpCisgICAgbmV3
TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYg
bm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAg
ICAgICAgICAgd2hlbiAic2x0IiwgInNsdHUiLCAic2x0YiIsICJzbHR1YiIKKyAgICAgICAgICAg
ICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAg
ICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIs
IFtub2RlLm9wZXJhbmRzWzFdLCB0bXBdLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5v
cGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtu
b2RlLm9wZXJhbmRzWzBdLCB0bXAsIG5vZGUub3BlcmFuZHNbMl1dLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdM
aXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisj
IFNwZWNpYWxpemF0aW9uIG9mIGxvd2VyaW5nIG9mIG1pc3BsYWNlZCBhZGRyZXNzZXMuCisjCisK
K2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xp
c3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQor
ICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiam1wIgorICAgICAgICAgICAgICAgIGlm
IG5vZGUub3BlcmFuZHNbMF0uYWRkcmVzcz8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3Bl
Y2lhbFJlZ2lzdGVyLm5ldygiJHJhIikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibG9hZGkiLCBbbm9k
ZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbcmlzY0FzUmVnaXN0ZXIobmV3TGlzdCwgcG9zdEluc3RydWN0aW9u
cywgbm9kZS5vcGVyYW5kc1swXSwgInAiLCBmYWxzZSldKQorICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSBmYWxz
ZTsKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAg
ICAgICAgICAgICAgIHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29k
ZU9yaWdpbiwgImxvYWRwIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAg
ICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVy
YW5kc1swXS5pc19hPyBMYWJlbFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBu
b2RlLm9wZXJhbmRzWzBdCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAg
ICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2Rl
T3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAg
ICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgdG1wID0gbm9kZS5vcGVyYW5kc1swXQorICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
bm9kZS5vcGNvZGUsIFt0bXBdKQorICAgICAgICAgICAgICAgIGlmIHJlc3RvcmVHUAorICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1NwZWNpYWxS
ZWdpc3Rlci5uZXcoIiRzNCIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZ3AiKV0pCisgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVuICJzbHQiLCAic2x0dSIKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xp
c3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgd2hlbiAic2x0dWIiLCAi
c2x0YiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlz
Y0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAg
ICAgd2hlbiAiYnoiLCAiYm56IiwgImJzIiwgImJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUu
b3BlcmFuZHMsICJpIikpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdElu
c3RydWN0aW9ucworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAg
ICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIExvd2VyaW5nIGNvbXBh
cmVzIGFuZCB0ZXN0cy4KKyMKKworZGVmIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShsaXN0LCBu
b2RlLCBvcENtcCwgb3BNb3YpCisgICAgdG1wMCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6
Z3ByKQorICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICBsaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5u
ZXcobmlsLCAwKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBvcENtcCwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFu
ZHNbMF0sIHRtcDBdKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhuaWwsIDEpLCB0bXAxXSkKKyAgICBsaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wTW92LCBbbm9kZS5vcGVyYW5kc1syXSwg
dG1wMSwgdG1wMF0pCitlbmQKKworZGVmIG1pcHNMb3dlckNvbXBhcmVzKGxpc3QpCisgICAgbmV3
TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYg
bm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAg
ICAgICAgICAgd2hlbiAiY2llcSIsICJjcGVxIiwgImNiZXEiCisgICAgICAgICAgICAgICAgbWlw
c0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdnoiKQorICAg
ICAgICAgICAgd2hlbiAiY2luZXEiLCAiY3BuZXEiLCAiY2JuZXEiCisgICAgICAgICAgICAgICAg
bWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdm4iKQor
ICAgICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCisgICAgICAgICAgICAgICAgbWlw
c0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdnoiKQorICAg
ICAgICAgICAgd2hlbiAidGlueiIsICJ0Ym56IiwgInRwbnoiCisgICAgICAgICAgICAgICAgbWlw
c0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdm4iKQorICAg
ICAgICAgICAgd2hlbiAidGlvIiwgInRibyIsICJ0cG8iCisgICAgICAgICAgICAgICAgdG1wID0g
VG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFd
LCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCB0bXBdKQorICAgICAgICAgICAgd2hlbiAidGlzIiwg
InRicyIsICJ0cHMiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0
bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCB0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXco
IiR6ZXJvIildKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
bm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTGVh
IHN1cHBvcnQuCisjCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgbWlwc0VtaXRMZWEoZGVzdGlu
YXRpb24pCisgICAgICAgIGlmIGRlc3RpbmF0aW9uID09IGJhc2UKKyAgICAgICAgICAgICRhc20u
cHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlvbi5taXBzT3BlcmFuZH0sICN7b2Zmc2V0LnZhbHVlfSIK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje2Rlc3RpbmF0aW9u
Lm1pcHNPcGVyYW5kfSwgI3tiYXNlLm1pcHNPcGVyYW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAg
ICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisjIEFkZCBQSUMgY29tcGF0aWJsZSBoZWFkZXIg
Y29kZSB0byBwcm9sb2d1ZS9lbnRyeSBydXRpbnMuCisjCisKK2RlZiBtaXBzQWRkUElDQ29kZShs
aXN0KQorICAgIG15TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwK
KyAgICAgICAgbXlMaXN0IDw8IG5vZGUKKyAgICAgICAgaWYgbm9kZS5pc19hPyBMYWJlbAorICAg
ICAgICAgICAgaWYgL19wcm9sb2d1ZSQvLm1hdGNoKG5vZGUubmFtZSkgfHwgL15fbGxpbnRfZnVu
Y3Rpb25fLy5tYXRjaChub2RlLm5hbWUpCisgICAgICAgICAgICAgICAgIyBGdW5jdGlvbnMgY2Fs
bGVkIGZyb20gdHJhbXBvbGluZS9KSVQgY29kZXMuCisgICAgICAgICAgICAgICAgbXlMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJwaWNoZHIiLCBbXSkKKyAgICAgICAg
ICAgIGVsc2lmIC9fbGxpbnRfb3BfY2F0Y2gvLm1hdGNoKG5vZGUubmFtZSkKKyAgICAgICAgICAg
ICAgICAjIEV4Y2VwdGlvbiBjYWN0Y2hlciBlbnRyeSBwb2ludCBmdW5jdGlvbi4KKyAgICAgICAg
ICAgICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInBpY2hk
cnJhIiwgW10pCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgfQorICAgIG15TGlz
dAorZW5kCisKKyMKKyMgQWN0dWFsIGxvd2VyaW5nIGNvZGUgZm9sbG93cy4KKyMKKworY2xhc3Mg
U2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0TUlQUworICAgICAgICByZXN1bHQgPSBA
bGlzdAorCisgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlv
bnMgYW5kIGxhYmVscy4KKyAgICAgICAgcmVzdWx0LmVhY2ggeworICAgICAgICAgICAgfCBub2Rl
IHwKKyAgICAgICAgICAgIHVubGVzcyBub2RlLmlzX2E/IEluc3RydWN0aW9uIG9yCisgICAgICAg
ICAgICAgICAgICAgIG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tp
cAorICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAj
e25vZGUuY29kZU9yaWdpbn0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorCisgICAgICAg
IHJlc3VsdCA9IG1pcHNBZGRQSUNDb2RlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xv
d2VyU2ltcGxlQnJhbmNoT3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VySGFy
ZEJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclNoaWZ0T3BzKHJl
c3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3Vs
dCkgeworICAgICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKKyAgICAgICAgICAgIGlmIGFkZHJl
c3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICgtMHhmZmZmLi4weGZmZmYpLmluY2x1
ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgZmFsc2UKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisgICAgICAgIHJlc3VsdCA9IHJp
c2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBt
aXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlz
Y0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIC0weGZmZmYuLjB4ZmZmZikKKyAgICAg
ICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9uKHJlc3VsdCkKKyAg
ICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMocmVzdWx0
KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKKyAgICAg
ICAgcmVzdWx0ID0gbWlwc0xvd2VyQ29tcGFyZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBh
c3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgTUlQU19URU1QX0dQUlMp
CisgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6
ZnByLCBNSVBTX1RFTVBfRlBSUykKKworICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgZW5kCitl
bmQKKworZGVmIG1pcHNPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYu
bWlwc09wZXJhbmR9LmpvaW4oIiwgIikKK2VuZAorCitkZWYgbWlwc0ZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcykKKyAgICBtaXBzT3BlcmFuZHMoW29wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4t
Ml0pCitlbmQKKworZGVmIGdldE1JUFNPcGNvZGUob3Bjb2RlLCBzdWZmaXgpCisKK2VuZAorCitk
ZWYgZW1pdE1JUFNDb21wYWN0KG9wY29kZSwgb3Bjb2RlaSwgb3BlcmFuZHMpCisgICAgcG9zdGZp
eCA9ICIiCisgICAgaWYgb3Bjb2RlID09ICJzdWIiCisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlz
X2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgb3Bjb2RlID0gImFkZCIKKyAgICAgICAgICAgIG9w
ZXJhbmRzWzBdID0gSW1tZWRpYXRlLm5ldyhvcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAtMSAqIG9w
ZXJhbmRzWzBdLnZhbHVlKQorICAgICAgICBlbHNpZiBvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlh
dGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQiCisgICAgICAgICAgICBvcGVyYW5kc1sxXSA9
IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMV0uY29kZU9yaWdpbiwgLTEgKiBvcGVyYW5kc1sxXS52
YWx1ZSkKKyAgICAgICAgZW5kCisgICAgICAgIHBvc3RmaXggPSAidSIKKyAgICBlbHNpZiBvcGNv
ZGUgPT0gImFkZCIKKyAgICAgICAgcG9zdGZpeCA9ICJ1IgorICAgIGVuZAorICAgIGlmIG9wZXJh
bmRzLnNpemUgPT0gMworICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1syXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZh
bHVlfSIKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0i
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4
fSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxz
ZQorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIHJhaXNl
IHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNf
YT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRh
c20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9Igor
ICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFNTaGlmdENvbXBhY3Qob3Bj
b2RlLCBvcGVyYW5kcykKKyAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgaWYgKG9w
ZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZSkKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNv
ZGV9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20u
cHV0cyAiI3tvcGNvZGV9diAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAy
CisgICAgICAgIGlmIG9wZXJhbmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgJGFzbS5wdXRz
ICIje29wY29kZX12ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAg
ICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0TUlQUyhvcGNvZGUsIG9wZXJhbmRzKQor
ICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAj
e21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICBlbHNlCisgICAgICAgIHJhaXNl
IHVubGVzcyBvcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0g
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFNE
b3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBuZWcsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAi
Yy4je2JyYW5jaE9wY29kZX0uZCAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAg
IGlmICghbmVnKQorICAgICAgICAkYXNtLnB1dHMgImJjMXQgI3tvcGVyYW5kc1syXS5hc21MYWJl
bH0iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImJjMWYgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgZW5kCitlbmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgbG93ZXJN
SVBTCisgICAgICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAgIGNhc2Ug
b3Bjb2RlCisgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIKKyAgICAgICAgICAg
IGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisg
ICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAg
ICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAg
ICAgICBpZiBvcGVyYW5kc1swXS52YWx1ZSA9PSAwICNhbmQgc3VmZml4LmVtcHR5PworICAgICAg
ICAgICAgICAgICAgICB1bmxlc3Mgb3BlcmFuZHNbMV0gPT0gb3BlcmFuZHNbMl0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAgICAgICAgIGVuZAor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRp
dSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgZWxzaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5yZWdpc3Rlcj8K
KyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAg
ICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzJdLnJlZ2lzdGVyPworICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAiYWRkdSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJ
bW1lZGlhdGUKKyAgICAgICAgICAgICAgICAgICAgdW5sZXNzIEltbWVkaWF0ZS5uZXcobmlsLCAw
KSA9PSBvcGVyYW5kc1swXQorICAgICAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRp
dSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJh
bmRzKX0iCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGR1ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAi
YW5kaSIsICJhbmRwIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJhbmQiLCAiYW5kIiwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm9yaSIsICJvcnAiCisgICAgICAgICAgICBlbWl0TUlQ
U0NvbXBhY3QoIm9yIiwgIm9yciIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJvcmlzIgorICAg
ICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJvciIsICJvcnJzIiwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gInhvcmkiLCAieG9ycCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgieG9yIiwg
ImVvciIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJsc2hpZnRpIiwgImxzaGlmdHAiCisgICAg
ICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgic2xsIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gInJzaGlmdGkiLCAicnNoaWZ0cCIKKyAgICAgICAgICAgIGVtaXRNSVBTU2hpZnRDb21wYWN0
KCJzcmEiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidXJzaGlmdGkiLCAidXJzaGlmdHAiCisg
ICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgic3JsIiwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gIm11bGkiLCAibXVscCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJtdWwiLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1YmlzIgorICAgICAgICAgICAgZW1p
dE1JUFNDb21wYWN0KCJzdWIiLCAic3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJuZWdp
IiwgIm5lZ3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZ3UgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJub3Rp
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJub3IgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAkemVybyIKKyAgICAgICAgd2hlbiAibG9hZGki
LCAibG9hZGlzIiwgImxvYWRwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAje21pcHNGbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAic3cgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICAgICAgd2hlbiAibG9hZGIiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxidSAje21pcHNGbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGJzIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsYiAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAic3RvcmViIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzYiAje21pcHNPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkaCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAibGh1ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJs
b2FkaHMiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxoICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWgiCisgICAgICAgICAgICAkYXNtLnB1dHMg
InNodiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkZCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAibGRjMSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMp
fSIKKyAgICAgICAgd2hlbiAic3RvcmVkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzZGMxICN7
bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImFkZGQiCisgICAgICAgICAg
ICBlbWl0TUlQUygiYWRkLmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiZGl2ZCIKKyAgICAg
ICAgICAgIGVtaXRNSVBTKCJkaXYuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzdWJkIgor
ICAgICAgICAgICAgZW1pdE1JUFMoInN1Yi5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11
bGQiCisgICAgICAgICAgICBlbWl0TUlQUygibXVsLmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hl
biAic3FydGQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNxcnQuZCAje21pcHNGbGlwcGVkT3Bl
cmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgIHJhaXNl
ICJpbnZhbGlkIG9wcyBvZiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIG9wZXJhbmRzWzFdLmlzX2E/IEZQUmVnaXN0ZXJJRCBhbmQgb3BlcmFuZHNbMF0ucmVn
aXN0ZXI/CisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1swXS5taXBzT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJjdnQuZC53ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSIKKyAgICAgICAgd2hlbiAiYmRlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRuZXEiCisgICAg
ICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAg
ICAgIHdoZW4gImJkZ3QiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWxlIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRN
SVBTRG91YmxlQnJhbmNoKCJ1bHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRs
dCIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbHQiLCBmYWxzZSwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJkbHRlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJh
bmNoKCJvbGUiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZXF1biIKKyAgICAg
ICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1ZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAg
ICAgIHdoZW4gImJkbmVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEi
LCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndHVuIgorICAgICAgICAgICAgZW1p
dE1JUFNEb3VibGVCcmFuY2goIm9sZSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
ZGd0ZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbHQiLCB0cnVlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3Vi
bGVCcmFuY2goInVsdCIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdGVxdW4i
CisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWxlIiwgZmFsc2UsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJidGQyaSIKKyAgICAgICAgICAgICMgRklYTUU6IG1heSBiZSBhIGdv
b2QgaWRlYSB0byBqdXN0IGdldCByaWQgb2YgdGhpcyBpbnN0cnVjdGlvbiwgc2luY2UgdGhlIGlu
dGVycHJldGVyCisgICAgICAgICAgICAjIGN1cnJlbnRseSBkb2VzIG5vdCB1c2UgaXQuCisgICAg
ICAgICAgICByYWlzZSAiTUlQUyBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tj
b2RlT3JpZ2lufSIKKyAgICAgICAgd2hlbiAidGQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Y3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSwgI3tvcGVyYW5kc1swXS5t
aXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5t
aXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICB3
aGVuICJiY2QyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRD
SF9GUFIubWlwc1NpbmdsZUxvfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19T
Q1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53
ICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBz
U2luZ2xlTG99IgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwgdHJ1ZSwg
W01JUFNfU0NSQVRDSF9GUFIsIG9wZXJhbmRzWzBdLCBvcGVyYW5kc1syXV0pCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgJHplcm8sICN7b3Bl
cmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJtb3ZkeiIKKyAgICAgICAgICAgICMg
RklYTUU6IGVpdGhlciBzdXBwb3J0IHRoaXMgb3IgcmVtb3ZlIGl0LgorICAgICAgICAgICAgcmFp
c2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0i
CisgICAgICAgIHdoZW4gInBvcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3tvcGVyYW5k
c1swXS5taXBzT3BlcmFuZH0sIDAoJHNwKSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
JHNwLCAkc3AsIDQiCisgICAgICAgIHdoZW4gInB1c2giCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImFkZGl1ICRzcCwgJHNwLCAtNCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3cgI3tvcGVyYW5k
c1swXS5taXBzT3BlcmFuZH0sIDAoJHNwKSIKKyAgICAgICAgd2hlbiAibW92ZSIsICJzeGkycCIs
ICJ6eGkycCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAg
ICAgICAgICAgICAgIG1pcHNNb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5k
c1sxXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUg
I3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAg
ICAgd2hlbiAibm9wIgorICAgICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgIHdoZW4g
ImJpZXEiLCAiYnBlcSIsICJiYmVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3ttaXBz
T3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAg
ICAgIHdoZW4gImJpbmVxIiwgImJwbmVxIiwgImJibmVxIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJibmUgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgICAgIHdoZW4gImJpZ3QiLCAiYnBndCIsICJiYmd0IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJiZ3QgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5k
c1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpZ3RlcSIsICJicGd0ZXEiLCAiYmJndGVx
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ2UgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4u
MV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbHQiLCAiYnBs
dCIsICJiYmx0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJibHQgI3ttaXBzT3BlcmFuZHMob3Bl
cmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJp
bHRlcSIsICJicGx0ZXEiLCAiYmJsdGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJibGUgI3tt
aXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisg
ICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmxhYmVsPworICAg
ICAgICAgICAgICAgICRhc20ucHV0cyAiaiAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImpyICN7b3BlcmFuZHNbMF0u
bWlwc09wZXJhbmR9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNhbGwiCisgICAg
ICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImphbCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dHMgImphbHIgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYnJlYWsiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImJyZWFrIgorICAgICAgICB3aGVuICJyZXQiCisgICAgICAgICAgICAkYXNtLnB1dHMgImpyICRy
YSIKKyAgICAgICAgd2hlbiAiY2lhIiwgImNwYSIsICJjYmEiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lhZXEi
LCAiY3BhZXEiLCAiY2JhZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRz
WzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAiY2liIiwgImNwYiIsICJjYmIiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAg
ICAgICAgd2hlbiAiY2liZXEiLCAiY3BiZXEiLCAiY2JiZXEiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAiY2ln
dCIsICJjcGd0IiwgImNiZ3QiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRz
WzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJjaWd0ZXEiLCAiY3BndGVxIiwgImNiZ3Rl
cSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0i
CisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
IDEiCisgICAgICAgIHdoZW4gImNpbHQiLCAiY3BsdCIsICJjYmx0IgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2ls
dGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29w
ZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3Bl
cmFuZHNbMl0ubWlwc09wZXJhbmR9LCAxIgorICAgICAgICB3aGVuICJwZWVrIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJsdyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS52YWx1ZSAqIDR9KCRzcCkiCisgICAgICAgIHdoZW4gInBva2UiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInN3ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVl
ICogNH0oJHNwKSIKKyAgICAgICAgd2hlbiAiZmlpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMg
Im10YzEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc1Npbmds
ZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibXRjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1syXS5taXBzU2luZ2xlSGl9IgorICAgICAgICB3aGVuICJmZDJpaSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMx
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNTaW5nbGVIaX0i
CisgICAgICAgIHdoZW4gImJvIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3tvcGVyYW5k
c1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYnMiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImJsdCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJieiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYmVxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4g
ImJueiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0i
CisgICAgICAgIHdoZW4gImxlYWkiLCAibGVhcCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdLm1p
cHNFbWl0TGVhKG9wZXJhbmRzWzFdKQorICAgICAgICB3aGVuICJzbXVsbGkiCisgICAgICAgICAg
ICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5z
cGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0
CisgICAgICAgICAgICAkYXNtLnB1dHMgIm11bHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmxv
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmhp
ICN7b3BlcmFuZHNbM10ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJtb3Z6IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3Z6ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAg
IHdoZW4gIm1vdm4iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdm4gI3tvcGVyYW5kc1swXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0IiwgInNsdGIiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInNsdCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJzbHR1
IiwgInNsdHViIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gInBpY2hkciIKKyAgICAgICAgICAgICRhc20ucHV0U3Ry
KCJPRkZMSU5FX0FTTV9DUExPQUQoJDI1KSIpCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUg
JHM0LCAkZ3AiCisgICAgICAgIHdoZW4gInBpY2hkcnJhIgorICAgICAgICAgICAgJGFzbS5wdXRT
dHIoIk9GRkxJTkVfQVNNX0NQTE9BRCgkMzEpIikKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92
ZSAkczQsICRncCIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIlVuaGFuZGxlZCBv
cGNvZGUgI3tvcGNvZGV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAg
IGVuZAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
aXNjLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCA0
NGI0ZGJkLi40OTFhM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2Mu
cmIKQEAgLTYzLDEwICs2Myw2IEBAIGRlZiByaXNjTG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlv
bikKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIGJyYW5jaCwgW25vZGUub3BlcmFuZHNbLTFdXSkKLSAgICAgICAgICAgIHdoZW4gJ2Jt
dWxpcycsICdibXVseicsICdibXVsbnonCi0gICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4u
cG9zdF9tYXRjaAotICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikK
LSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5vcGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNb
LTFdXSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUK
ICAgICAgICAgICAgIGVuZApAQCAtOTMsMTIgKzg5LDIyIEBAIGRlZiByaXNjTG93ZXJIYXJkQnJh
bmNoT3BzKGxpc3QpCiAgICAgbmV3TGlzdCA9IFtdCiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAg
fCBub2RlIHwKLSAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbiBhbmQgbm9kZS5vcGNv
ZGUgPT0gImJtdWxpbyIKLSAgICAgICAgICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdp
biwgOmdwcikKLSAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdw
cikKLSAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgInNtdWxsaSIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9w
ZXJhbmRzWzFdLCB0bXAxXSwgbm9kZS5hbm5vdGF0aW9uKQotICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJh
bmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2RlLmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0pCi0gICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5l
cSIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgIGlmIG5vZGUuaXNf
YT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24K
KyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gICJibXVsaW8i
CisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVy
YW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3Bl
cmFuZHNbLTJdLCBJbW1lZGlhdGUubmV3KG5vZGUuY29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3
aGVuIC9eYm11bGkvCisgICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgIm11bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsg
Y29uZGl0aW9uLCBbbm9kZS5vcGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAg
IGVuZAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAg
ZW5kCkBAIC00NDcsNyArNDUzLDcgQEAgZGVmIHJpc2NBc1JlZ2lzdGVycyhwcmVMaXN0LCBwb3N0
TGlzdCwgb3BlcmFuZHMsIHN1ZmZpeCkKICAgICBuZXdPcGVyYW5kcwogZW5kCiAKLWRlZiByaXNj
TG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXNDb21tb24obGlzdCkKICAgICBuZXdMaXN0ID0gW10KICAgICBsaXN0LmVhY2ggewogICAg
ICAgICB8IG5vZGUgfApAQCAtNDgzLDYgKzQ4OSwyNSBAQCBkZWYgcmlzY0xvd2VyTWlzcGxhY2Vk
QWRkcmVzc2VzKGxpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFu
ZHMsICJkIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5u
b3RhdGlvbikKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rp
b25zCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBl
bmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7Cisg
ICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAg
ICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5v
ZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAg
d2hlbiAiam1wIiwgImNhbGwiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUub3Bjb2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyNGY2MjExLi45Yjc2N2Y3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTExLTA4ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5u
aS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24g
Zm9yIE1JUFMuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0xMS0wOCAgTWlj
aGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXNoQW5kVVRGOENo
YXJhY3RlcnNUcmFuc2xhdG9yIHNob3VsZCBjcmVhdGUgYW4gOCBiaXQgc3RyaW5nIGlmIHBvc3Np
YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAppbmRleCAwYWI4MDg2Li5lMDA5Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTky
NSw3ICs5MjUsNyBAQAogICAgICYmIEVOQUJMRShKSVQpIFwKICAgICAmJiAoT1MoREFSV0lOKSB8
fCBPUyhMSU5VWCkpIFwKICAgICAmJiAoUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8
IFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhMSU5VWCkpKSBcCi0gICAgJiYg
KENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSkKKyAgICAmJiAoQ1BV
KFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKSkKICNk
ZWZpbmUgRU5BQkxFX0xMSU5UIDEKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174127</attachid>
            <date>2012-11-14 04:24:14 -0800</date>
            <delta_ts>2012-11-14 09:13:37 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>58706</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFjMjJhY2EuLmZiNTc2Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTE0ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6Y2FuSnVtcFJlcGxhY2VQYXRj
aGFibGVCcmFuY2hQdHJXaXRoUGF0Y2gpOgorICAgICAgICAoTWFjcm9Bc3NlbWJsZXJNSVBTKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdGFydE9mUGF0Y2hhYmxlQnJhbmNo
UHRyV2l0aFBhdGNoKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpyZXZlcnRK
dW1wUmVwbGFjZW1lbnRUb1BhdGNoYWJsZUJyYW5jaFB0cldpdGhQYXRjaCk6CisgICAgICAgICog
ZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRodW5rcyk6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAgICAoSklUU3RhY2tGcmFt
ZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmg6CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAg
ICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0
cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJiOiBBZGRlZC4KKyAgICAg
ICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6CisKIDIwMTItMTEtMTMgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgQ3JlYXRlVGhpcyBzaG91bGQgYmUgYWJsZSB0
byBzdGF0aWNhbGx5IGFjY291bnQgZm9yIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIG9iamVjdCBpdCBj
cmVhdGVzLCBpZiBwcm9maWxpbmcgaW5kaWNhdGVzIHRoYXQgdGhpcyBzdHJ1Y3R1cmUgaXMgYWx3
YXlzIHRoZSBzYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBmYzZmOWY0Li42M2Q0MjdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAg
LTEzMDQsNyArMTMwNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQganVtcChSZWdpc3RlcklEIHRh
cmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmpyKHRhcmdldCk7CisgICAgICAgIG1v
dmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmpyKE1J
UFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CiAgICAgfQogCkBA
IC0yMjQyLDYgKzIyNDMsMTkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
KyAgICBzdGF0aWMgYm9vbCBjYW5KdW1wUmVwbGFjZVBhdGNoYWJsZUJyYW5jaFB0cldpdGhQYXRj
aCgpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICBzdGF0aWMgQ29kZUxvY2F0aW9uTGFiZWwgc3Rh
cnRPZlBhdGNoYWJsZUJyYW5jaFB0cldpdGhQYXRjaChDb2RlTG9jYXRpb25EYXRhTGFiZWxQdHIp
CisgICAgeworICAgICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyAgICAgICAgcmV0
dXJuIENvZGVMb2NhdGlvbkxhYmVsKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgcmV2ZXJ0
SnVtcFJlcGxhY2VtZW50VG9QYXRjaGFibGVCcmFuY2hQdHJXaXRoUGF0Y2goQ29kZUxvY2F0aW9u
TGFiZWwsIEFkZHJlc3MsIHZvaWQqKQorICAgIHsKKyAgICAgICAgVU5SRUFDSEFCTEVfRk9SX1BM
QVRGT1JNKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIC8vIElmIG1fZml4ZWRXaWR0aCBpcyB0
cnVlLCB3ZSB3aWxsIGdlbmVyYXRlIGEgZml4ZWQgbnVtYmVyIG9mIGluc3RydWN0aW9ucy4KICAg
ICAvLyBPdGhlcndpc2UsIHdlIGNhbiBlbWl0IGFueSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggYjJjMzM3
ZC4uNjQwNTcyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCkBAIC00Nyw2ICs0NywxNiBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2lmIENQVShNSVBT
KSAmJiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikg
XAorICAgICAgICAiLnNldCBub3Jlb3JkZXIiICJcbiIgXAorICAgICAgICAiLmNwbG9hZCAkMjUi
ICJcbiIgXAorICAgICAgICAiLnNldCByZW9yZGVyIiAiXG4iIFwKKyAgICAgICAgImxhICR0OSwg
IiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIKKyNlbHNlCisjZGVmaW5lIExPQURfRlVO
Q1RJT05fVE9fVDkoZnVuY3Rpb24pICIiICJcbiIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKERGR19K
SVQpCiAKICNpZiBDT01QSUxFUihHQ0MpICYmIENQVShYODZfNjQpCkBAIC0yMDEsNiArMjExLDUy
IEBACiAgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFk
ZHJlc3MiICJcbiIgXAogICAgICk7CiAKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKE1JUFMp
CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0UoZnVuY3Rp
b24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1C
T0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxu
IiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURfRlVO
Q1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJtb3Zl
ICRhMSwgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24p
ICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9X
UkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUNJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisg
ICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikg
IlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJ
TkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9u
IyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAibW92ZSAkYTMsICRyYSIgIlxuIiBcCisg
ICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3Mi
ICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9B
RERSRVNTX0VKSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisg
ICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lN
Qk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxu
IiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3Mp
IFwKKyAgICAgICAgInN3ICRyYSwgMjAoJHNwKSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxf
UkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisK
KyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VKQ0koZnVuY3Rp
b24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1C
T0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxu
IiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURfRlVO
Q1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJzdyAk
cmEsIDI0KCRzcCkiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlv
bikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCiAjZW5kaWYKIAogI2RlZmlu
ZSBQX0ZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FKGZ1bmN0aW9uKSBcCkBA
IC0xNTU1LDYgKzE2MTEsMTcgQEAgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVl
KSAiOiIgIlxuIgogICAgICJtb3YgcjAsIHI1IiAiXG4iCiAgICAgImIgIiBMT0NBTF9SRUZFUkVO
Q0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKICk7CisjZWxpZiBD
T01QSUxFUihHQ0MpICYmIENQVShNSVBTKQorYXNtKAorIi50ZXh0IiAiXG4iCisiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCitISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCitTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICI6IiAiXG4iCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkKKyAgICAibHcgJHMwLCAtNDAoJHMwKSIgIlxuIgorICAg
ICJtb3ZlICRhMCwgJHMwIiAiXG4iCisgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKKyk7CiAjZW5kaWYKIAogZXh0ZXJuICJD
IiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDUyMWRmYWMuLjM2N2RhZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0yODAsMTEgKzI4MCwxMyBAQCBleHRlcm4g
IkMiIHsKICNkZWZpbmUgUFJFU0VSVkVEX1MwX09GRlNFVCAgICAgICAgIDY0CiAjZGVmaW5lIFBS
RVNFUlZFRF9TMV9PRkZTRVQgICAgICAgICA2OAogI2RlZmluZSBQUkVTRVJWRURfUzJfT0ZGU0VU
ICAgICAgICAgNzIKLSNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCA3Ngot
I2RlZmluZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQgODAKLSNkZWZpbmUgUkVHSVNURVJf
RklMRV9PRkZTRVQgICAgICAgIDg0Ci0jZGVmaW5lIEdMT0JBTF9EQVRBX09GRlNFVCAgICAgICAg
IDEwMAotI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAgICAxMDQKKyNkZWZpbmUgUFJF
U0VSVkVEX1MzX09GRlNFVCAgICAgICAgIDc2CisjZGVmaW5lIFBSRVNFUlZFRF9TNF9PRkZTRVQg
ICAgICAgICA4MAorI2RlZmluZSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDg0Cisj
ZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4OAorI2RlZmluZSBSRUdJU1RFUl9G
SUxFX09GRlNFVCAgICAgICAgOTIKKyNkZWZpbmUgR0xPQkFMX0RBVEFfT0ZGU0VUICAgICAgICAg
MTA4CisjZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAgICAgIDExMgogI2VsaWYgQ1BVKFNI
NCkKICNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAjbmFtZQogLyogY29kZSAocjQpLCBKU1N0
YWNrKiAocjUpLCBDYWxsRnJhbWUqIChyNiksIHZvaWQqIHVudXNlZDEgKHI3KSwgdm9pZCogdW51
c2VkMihzcCksIEpTR2xvYmFsRGF0YSAoc3ApKi8KQEAgLTMxOCw2ICszMjAsOSBAQCBTWU1CT0xf
U1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImFkZCAjMTIsIHIxNSIgIlxuIgog
ICAgICJydHMiICJcbiIKICAgICAibm9wIiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhj
dGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURFX1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4i
CitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCiApOwogCiBhc20gdm9s
YXRpbGUgKApAQCAtNDUxLDYgKzQ1Niw4IEBAIGFzbSAoCiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1w
b2xpbmUpICI6IiAiXG4iCiAgICAgImFkZGl1ICQyOSwkMjksLSIgU1RSSU5HSVpFX1ZBTFVFX09G
KFNUQUNLX0xFTkdUSCkgIlxuIgogICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgInN3ICAg
ICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZGU0VUKSAiKCQyOSkiICJc
biIKKyAgICAic3cgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZT
RVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxNywiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAic3cgICAg
JDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxu
IgpAQCAtNDY3LDEyICs0NzQsMTcgQEAgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIg
IlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09G
RlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAg
ICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZG
U0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAk
MzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19M
RU5HVEgpICJcbiIKICIuc2V0IHJlb3JkZXIiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCiAiLmVu
ZCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9T
VFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3RpVHJhbXBvbGluZUVu
ZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogKTsKIAog
YXNtICgKQEAgLTQ4NSw4ICs0OTcsOCBAQCBhc20gKAogIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0
aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9s
aW5lKSAiOiIgIlxuIgogI2lmIFdURl9NSVBTX1BJQwotICAgICJsdyAgICAkMjgsIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkpIiAiXG4iCiAiLnNldCBtYWNy
byIgIlxuIgorIi5jcGxvYWQgJDMxIiAiXG4iCiAgICAgImxhICAgICQyNSwiIFNZTUJPTF9TVFJJ
TkcoY3RpX3ZtX3Rocm93KSAiXG4iCiAiLnNldCBub21hY3JvIiAiXG4iCiAgICAgImJhbCAiIFNZ
TUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCkBAIC00OTgsNiArNTEwLDggQEAgU1lNQk9M
X1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAibHcgICAgJDE2LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMjAsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAg
Imx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAgICAgImFkZGl1ICQy
OSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCkBAIC01MTgsNiAr
NTMyLDggQEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIgIlxuIgogICAg
ICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMTksIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAg
Imx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZGU0VUKSAiKCQy
OSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9S
RVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAkMzEiICJcbiIK
ICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJc
biIKQEAgLTgxNSw2ICs4MzEsOCBAQCBKSVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEpCiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tG
cmFtZSwgcHJlc2VydmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZTRVQpOwogICAgIEFTU0VSVChP
QkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMxKSA9PSBQUkVT
RVJWRURfUzFfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1MyX09GRlNFVCk7CisgICAgQVNT
RVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzMpID09
IFBSRVNFUlZFRF9TM19PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0
IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFM0KSA9PSBQUkVTRVJWRURfUzRfT0ZGU0VUKTsKICAg
ICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRS
ZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKTsKICAgICBB
U1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB0aHVua1JldHVybkFk
ZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2spID09IFJFR0lTVEVSX0ZJTEVf
T0ZGU0VUKTsKQEAgLTExMDgsOSArMTEyNiw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRp
YyBUIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbChKSVRTdGFja0ZyYW1lJiBqaXRTdGFja0ZyCiAg
ICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAg
Ii5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgU1lNQk9MX1NU
UklORyhjdGlfIyNvcCkgIjoiICJcbiIgXAotICAgICAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIiBcCi0gICAgICAgICJz
dyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
KSAiKCQyOSkiICJcbiIgXAogICAgICAgICAiLnNldCBtYWNybyIgIlxuIiBcCisgICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAogICAgICAgICAi
bGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKICAg
ICAgICAgIi5zZXQgbm9tYWNybyIgIlxuIiBcCiAgICAgICAgICIucmVsb2MgMWYsUl9NSVBTX0pB
TFIsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IDNiZjEzYmIuLmMzOGIyYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmgKQEAgLTIyOCw2ICsyMjgsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzA7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMx
OwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMjsKKyAgICAgICAgdm9pZCogcHJlc2VydmVkUzM7
CisgICAgICAgIHZvaWQqIHByZXNlcnZlZFM0OwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRSZXR1
cm5BZGRyZXNzOwogCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFz
bUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNv
bmZpZy5oCmluZGV4IGRhMmQ1MTAuLjE1NzUyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTM4LDYgKzM4LDcgQEAK
ICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjcgMAogI2RlZmluZSBPRkZMSU5FX0FTTV9YODZfNjQg
MAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12N3MgMAorI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBT
IDAKIAogI2Vsc2UgLy8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAKQEAgLTY3LDYgKzY4LDEyIEBA
CiAjZGVmaW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZW5kaWYKIAorI2lmIENQVShNSVBTKQor
I2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX01J
UFMgMAorI2VuZGlmCisKICNlbmRpZiAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCkBAIC0xMTEsNCArMTE4LDE3IEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX1ZB
TFVFX1BST0ZJTEVSIDAKICNlbmRpZgogCisjaWYgQ1BVKE1JUFMpCisjaWZkZWYgV1RGX01JUFNf
UElDCisjZGVmaW5lIFMoeCkgI3gKKyNkZWZpbmUgU1goeCkgUyh4KQorI2RlZmluZSBPRkZMSU5F
X0FTTV9DUExPQUQocmVnKSBcCisgICAgIi5zZXQgbm9yZW9yZGVyXG4iIFwKKyAgICAiLmNwbG9h
ZCAiIFNYKHJlZykgIlxuIiBcCisgICAgIi5zZXQgcmVvcmRlclxuIgorI2Vsc2UKKyNkZWZpbmUg
T0ZGTElORV9BU01fQ1BMT0FEKHJlZykKKyNlbmRpZgorI2VuZGlmCisKICNlbmRpZiAvLyBMTElu
dE9mZmxpbmVBc21Db25maWdfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDAwZDVjNGYuLjlkZTQ4ZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
QEAgLTE4MiwxMCArMTgyLDggQEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKIGVuZAogCiBtYWNy
byBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKLSAg
ICBpZiBDX0xPT1AKLSAgICAgICAgIyBJbiBvdXIgY2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5n
IHRoZSBieXRlY29kZSB2UEMuIAotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVy
Ci0gICAgZWxzaWYgQVJNdjcKKyAgICBpZiBDX0xPT1Agb3IgQVJNdjcgb3IgTUlQUworICAgICAg
ICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQ
Qy4KICAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgogICAgIGVsc2lmIFg4NiBv
ciBYODZfNjQKICAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKQEAgLTE5NSwxMCArMTkz
LDggQEAgbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVn
aXN0ZXIpCiBlbmQKIAogbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oc291
cmNlUmVnaXN0ZXIpCi0gICAgaWYgQ19MT09QCi0gICAgICAgICMgSW4gb3VyIGNhc2UsIHdlJ3Jl
IG9ubHkgcmVzdG9yaW5nIHRoZSBieXRlY29kZSB2UEMuIAotICAgICAgICBtb3ZlIHNvdXJjZVJl
Z2lzdGVyLCBscgotICAgIGVsc2lmIEFSTXY3CisgICAgaWYgQ19MT09QIG9yIEFSTXY3IG9yIE1J
UFMKKyAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5
dGVjb2RlIHZQQy4KICAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKICAgICBlbHNpZiBY
ODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
aW5kZXggOGQ1Y2RmMS4uOWExNzk4NWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTEzLDYgKzEx
MywxMCBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCiAgICAgICAgIHBva2Ug
YXJnMSwgMAogICAgICAgICBwb2tlIGFyZzIsIDEKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAg
IGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAgICAgICBtb3ZlIGFyZzIsIGEx
CisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgY2xvb3BD
YWxsU2xvd1BhdGggZnVuY3Rpb24sIGFyZzEsIGFyZzIKICAgICBlbHNlCkBAIC0xMzQsNiArMTM4
LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKICAg
ICAgICAgcG9rZSBhcmczLCAyCiAgICAgICAgIHBva2UgYXJnNCwgMwogICAgICAgICBjYWxsIGZ1
bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1v
dmUgYXJnMiwgYTEKKyAgICAgICAgbW92ZSBhcmczLCBhMgorICAgICAgICBtb3ZlIGFyZzQsIGEz
CisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgZXJyb3IK
ICAgICBlbHNlCkBAIC0xODE4LDYgKzE4MjgsMjAgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xp
bmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9m
ZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMK
KyAgICBlbHNpZiBNSVBTCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFb
c3BdLCB0MworICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0
M10KKyAgICAgICAgbW92ZSB0MCwgdDIKKyAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKHQzKQorICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KKyAgICAgICAgbW92
ZSBjZnIsIHQwCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEK
KyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKKyAgICAgICAg
bW92ZSB0MiwgY2ZyCisgICAgICAgIG1vdmUgdDAsIGEwCisgICAgICAgIGNhbGwgZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwg
dDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFs
RGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZy
YW1lW3QzXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJt
djcucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgppbmRleCAw
NzhiZThjLi5kN2QwNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9hcm12Ny5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12
Ny5yYgpAQCAtMTc5LDcgKzE3OSw4IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQpCiAgICAgICAgIHJlc3Vs
dCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0KQogICAgICAgICByZXN1bHQg
PSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwgMC4uMHhmZikKLSAgICAgICAg
cmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJlc3VsdCkKKyAgICAgICAgcmVz
dWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9uKHJlc3VsdCkKKyAgICAgICAg
cmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMocmVzdWx0KQogICAg
ICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKICAgICAgICAgcmVz
dWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpncHIsIEFSTXY3X0VY
VFJBX0dQUlMpCiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMo
cmVzdWx0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCA3OGU1NDU3Li5lZjkzNThjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgpAQCAtMjUsNiArMjUsNyBA
QCByZXF1aXJlICJjb25maWciCiByZXF1aXJlICJhcm12NyIKIHJlcXVpcmUgImFzdCIKIHJlcXVp
cmUgIng4NiIKK3JlcXVpcmUgIm1pcHMiCiByZXF1aXJlICJjbG9vcCIKIAogQkFDS0VORFMgPQpA
QCAtMzIsNiArMzMsNyBAQCBCQUNLRU5EUyA9CiAgICAgICJYODYiLAogICAgICAiWDg2XzY0IiwK
ICAgICAgIkFSTXY3IiwKKyAgICAgIk1JUFMiLAogICAgICAiQ19MT09QIgogICAgIF0KIApAQCAt
NDUsNiArNDcsNyBAQCBXT1JLSU5HX0JBQ0tFTkRTID0KICAgICAgIlg4NiIsCiAgICAgICJYODZf
NjQiLAogICAgICAiQVJNdjciLAorICAgICAiTUlQUyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIK
aW5kZXggZTA0N2IyYS4uNGU3MDYyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtMjY1LDYgKzI2NSwxNiBAQCBBUk12N19JTlNU
UlVDVElPTlMgPQogICAgICAib3JpcyIKICAgICBdCiAKK01JUFNfSU5TVFJVQ1RJT05TID0KKyAg
ICBbCisgICAgIm1vdnoiLAorICAgICJtb3ZuIiwKKyAgICAic2x0IiwKKyAgICAic2x0dSIsCisg
ICAgInBpY2hkciIsCisgICAgInBpY2hkcnJhIgorICAgIF0KKwogQ1hYX0lOU1RSVUNUSU9OUyA9
CiAgICAgWwogICAgICAiY2xvb3BDcmFzaCIsICAgICAgICAgICAjIG5vIG9wZXJhbmRzCkBAIC0y
ODEsNyArMjkxLDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgICJjbG9vcERvIiwgICAgICAg
ICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RS
VUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk12N19JTlNUUlVDVElPTlMgKyBDWFhfSU5T
VFJVQ1RJT05TCitJTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJV
Q1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMgKyBDWFhfSU5T
VFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJ
TlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vbWlwcy5yYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
MzM0NDJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vbWlwcy5yYgpAQCAtMCwwICsxLDg2OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgTUlQUyBUZWNo
bm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBNSVBTIFRFQ0hOT0xPR0lFUywgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
IyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIE1JUFMgVEVDSE5PTE9HSUVTLCBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
IyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworcmVxdWlyZSAncmlzYycKKworY2xhc3MgQXNzZW1ibGVy
CisgICAgZGVmIHB1dFN0cihzdHIpCisgICAgICAgIEBvdXRwLnB1dHMgc3RyCisgICAgZW5kCitl
bmQKKworY2xhc3MgTm9kZQorICAgIGRlZiBtaXBzU2luZ2xlSGkKKyAgICAgICAgZG91YmxlT3Bl
cmFuZCA9IG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7
ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eXCRmLworICAgICAgICAi
JGYiICsgKCR+LnBvc3RfbWF0Y2gudG9faSArIDEpLnRvX3MKKyAgICBlbmQKKyAgICBkZWYgbWlw
c1NpbmdsZUxvCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBtaXBzT3BlcmFuZAorICAgICAgICBy
YWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91Ymxl
T3BlcmFuZCA9fiAvXlwkZi8KKyAgICAgICAgZG91YmxlT3BlcmFuZAorICAgIGVuZAorZW5kCisK
K2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgbWlwc09wZXJhbmQK
KyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiBkdW1wCisgICAgICAgIEBuYW1lCisg
ICAgZW5kCisKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2VuZAor
CitNSVBTX1RFTVBfR1BSUyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDUiKSwgU3BlY2lhbFJl
Z2lzdGVyLm5ldygiJHQ2IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NyIpLAorICAgICAgICAg
ICAgICAgICAgICBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDgiKV0KK01JUFNfVEVNUF9GUFJTID0g
W1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRmMTYiKV0KK01JUFNfU0NSQVRDSF9GUFIgPSBTcGVjaWFs
UmVnaXN0ZXIubmV3KCIkZjE4IikKKworZGVmIG1pcHNNb3ZlSW1tZWRpYXRlKHZhbHVlLCByZWdp
c3RlcikKKyAgICBpZiB2YWx1ZSA9PSAwCisgICAgICAgICRhc20ucHV0cyAiYWRkICN7cmVnaXN0
ZXIubWlwc09wZXJhbmR9LCAkemVybywgJHplcm8iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1
dHMgImxpICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9LCAje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAor
CisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgY2FzZSBu
YW1lCisgICAgICAgIHdoZW4gImEwIgorICAgICAgICAgICAgIiRhMCIKKyAgICAgICAgd2hlbiAi
YTEiCisgICAgICAgICAgICAiJGExIgorICAgICAgICB3aGVuICJyMCIsICJ0MCIKKyAgICAgICAg
ICAgICIkdjAiCisgICAgICAgIHdoZW4gInIxIiwgInQxIgorICAgICAgICAgICAgIiR2MSIKKyAg
ICAgICAgd2hlbiAidDIiCisgICAgICAgICAgICAiJHQyIgorICAgICAgICB3aGVuICJ0MyIKKyAg
ICAgICAgICAgICIkczMiCisgICAgICAgIHdoZW4gInQ0IiAgICMgUEMgcmVnIGluIGxsaW50Cisg
ICAgICAgICAgICAiJHMyIgorICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgICAgICIkdDUiCisg
ICAgICAgIHdoZW4gInQ2IgorICAgICAgICAgICAgIiR0NiIKKyAgICAgICAgd2hlbiAidDciCisg
ICAgICAgICAgICAiJHQ3IgorICAgICAgICB3aGVuICJ0OCIKKyAgICAgICAgICAgICIkdDgiCisg
ICAgICAgIHdoZW4gImNmciIKKyAgICAgICAgICAgICIkczAiCisgICAgICAgIHdoZW4gImxyIgor
ICAgICAgICAgICAgIiRyYSIKKyAgICAgICAgd2hlbiAic3AiCisgICAgICAgICAgICAiJHNwIgor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9y
IE1JUFMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQK
KworY2xhc3MgRlBSZWdpc3RlcklECisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2Ug
bmFtZQorICAgICAgICB3aGVuICJmdDAiLCAiZnIiCisgICAgICAgICAgICAiJGYwIgorICAgICAg
ICB3aGVuICJmdDEiCisgICAgICAgICAgICAiJGYyIgorICAgICAgICB3aGVuICJmdDIiCisgICAg
ICAgICAgICAiJGY0IgorICAgICAgICB3aGVuICJmdDMiCisgICAgICAgICAgICAiJGY2IgorICAg
ICAgICB3aGVuICJmdDQiCisgICAgICAgICAgICAiJGY4IgorICAgICAgICB3aGVuICJmdDUiCisg
ICAgICAgICAgICAiJGYxMCIKKyAgICAgICAgd2hlbiAiZmEwIgorICAgICAgICAgICAgIiRmMTIi
CisgICAgICAgIHdoZW4gImZhMSIKKyAgICAgICAgICAgICIkZjE0IgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIE1JUFMgYXQgI3tjb2Rl
T3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgSW1tZWRp
YXRlCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJJbnZhbGlkIGltbWVkaWF0
ZSAje3ZhbHVlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiB2YWx1ZSA8IC0weDdmZmYgb3Ig
dmFsdWUgPiAweDdmZmYKKyAgICAgICAgIiN7dmFsdWV9IgorICAgIGVuZAorZW5kCisKK2NsYXNz
IEFkZHJlc3MKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJhZCBvZmZzZXQg
YXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVlIDwgLTB4N2ZmZiBvciBvZmZz
ZXQudmFsdWUgPiAweDdmZmYKKyAgICAgICAgIiN7b2Zmc2V0LnZhbHVlfSgje2Jhc2UubWlwc09w
ZXJhbmR9KSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBYnNvbHV0ZUFkZHJlc3MKKyAgICBkZWYg
bWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIlVuY29udmVydGVkIGFic29sdXRlIGFkZHJlc3Mg
YXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCisjCisjIExvd2VyICdhbmQn
IG1hc2tlZCBicmFuY2hlcworIworCitkZWYgbG93ZXJNSVBTQ29uZEJyYW5jaChsaXN0LCBjb25k
T3AsIG5vZGUpCisgICAgaWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgbGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25kT3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2Rl
Lm9wZXJhbmRzWzBdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRz
Wy0xXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikK
KyAgICBlbHNpZiBub2RlLm9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICB0bXAgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kaSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCBub2Rl
Lm9wZXJhbmRzWzFdLCB0bXBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
LmFubm90YXRpb24pCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZE9wLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIp
LCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgZWxzZQorICAgICAgICByYWlzZSAiRXhwZWN0ZWQg
MiBvciAzIG9wZXJhbmRzIGJ1dCBnb3QgI3tub2RlLm9wZXJhbmRzLnNpemV9IGF0ICN7bm9kZS5j
b2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCisjCisjIExvd2VyaW5nIG9mIGJyYW5j
aCBvcHMuIEZvciBleGFtcGxlOgorIworIyBiYWRkaXogZm9vLCBiYXIsIGJhegorIworIyB3aWxs
IGJlY29tZToKKyMKKyMgYWRkaSBmb28sIGJhcgorIyBieiBiYXoKKyMKKworZGVmIG1pcHNMb3dl
clNpbXBsZUJyYW5jaE9wcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7
CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAg
ICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ug
bm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gL15iKGFkZGl8c3ViaXxvcml8YWRkcCkvCisg
ICAgICAgICAgICAgICAgb3AgPSAkMQorICAgICAgICAgICAgICAgIGJjID0gJH4ucG9zdF9tYXRj
aAorICAgICAgICAgICAgICAgIGJyYW5jaCA9ICJiIiArIGJjCisKKyAgICAgICAgICAgICAgICBj
YXNlIG9wCisgICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIgorICAgICAgICAgICAg
ICAgICAgICBvcCA9ICJhZGRpIgorICAgICAgICAgICAgICAgIHdoZW4gInN1YmkiCisgICAgICAg
ICAgICAgICAgICAgIG9wID0gInN1YmkiCisgICAgICAgICAgICAgICAgd2hlbiAib3JpIgorICAg
ICAgICAgICAgICAgICAgICBvcCA9ICJvcmkiCisgICAgICAgICAgICAgICAgZW5kCisKKyAgICAg
ICAgICAgICAgICB6ZXJvID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKQorICAgICAgICAg
ICAgICAgIGlmIGJjID09ICJvIgorICAgICAgICAgICAgICAgICAgICBjYXNlIG9wCisgICAgICAg
ICAgICAgICAgICAgIHdoZW4gImFkZGkiCisgICAgICAgICAgICAgICAgICAgICAgICAjICBhZGR1
ICRzMCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMSwg
JHMyCisgICAgICAgICAgICAgICAgICAgICAgICAjICBibHQgJHQwLCAkemVybywgbm8gb3ZlcmZs
b3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMCwgJHMxCisgICAgICAg
ICAgICAgICAgICAgICAgICAjICBibHQgJHQwLCAkemVybywgb3ZlcmZsb3cKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgbm8gb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgICAgICAgICAjCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3By
KQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBub0Zsb3cgPSBMb2NhbExhYmVsLnVuaXF1
ZSgibm9mbG93IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vRmxvd1JlZiA9IExvY2FsTGFi
ZWxSZWZlcmVuY2UubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9GbG93KQorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwg
W25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRyXSwgYW5ub3RhdGlvbikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgInhvcmkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1w
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgImJpbHQiLCBbdG1wLCB6ZXJvLCBub0Zsb3dSZWZdKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAieG9yaSIsIFt0ciwgbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpbHQi
LCBbdG1wLCB6ZXJvLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9GbG93CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW3RyLCBub2RlLm9wZXJhbmRz
WzFdXSkKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICMgIHN1YnUgJHMwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAgICAgICAgIyAg
eG9yICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJnZSAkdDAsICR6
ZXJvLCBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMw
LCAkczEKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJvLCBvdmVyZmxv
dworICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdmVyZmxvdzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5v
ZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHplcm8gPSBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkemVybyIpCisgICAgICAgICAgICAgICAgICAgICAgICBub0Zsb3cg
PSBMb2NhbExhYmVsLnVuaXF1ZSgibm9mbG93IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
Rmxvd1JlZiA9IExvY2FsTGFiZWxSZWZlcmVuY2UubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9GbG93
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRy
XSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9k
ZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpZ3RlcSIsIFt0bXAsIHplcm8sIG5v
Rmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBd
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vZGUub3BlcmFuZHNbMl1dKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUi
LCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICB3aGVuICJvcmki
CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG92d2VyZmxvdyBhdCBvcmkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgb3AsIG5vZGUub3BlcmFuZHNbMC4uMV0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaWYgbm9k
ZS5vcGVyYW5kc1sxXS5pc19hPyBBZGRyZXNzCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRy
ID0gbm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgdHIgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxvYWRwIiwgW2FkZHIsIHRyXSwg
YW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRzWzBdLCB0cl0pCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJzdG9yZXAiLCBbdHIsIGFkZHJdKQorICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ciA9IG5vZGUub3BlcmFuZHNbMV0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
b3AsIG5vZGUub3BlcmFuZHNbMC4uLTJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBicmFuY2gsIFt0ciwgemVybywgbm9kZS5vcGVyYW5kc1stMV1dKQorICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAiYmlhIiwgImJwYSIsICJiYmEiCisg
ICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8gInNsdHViIiA6ICJz
bHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXV0s
IGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAiYm56IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8i
KSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJiaWFlcSIsICJicGFlcSIs
ICJiYmFlcSIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwg
OmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAi
c2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9w
ZXJhbmRzWzFdXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJieiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5u
ZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYmliIiwg
ImJwYiIsICJiYmIiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIi
ID8gInNsdHViIiA6ICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1swXSwgbm9k
ZS5vcGVyYW5kc1sxXV0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYm56IiwgW3RtcCwgU3BlY2lhbFJlZ2lz
dGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJi
aWJlcSIsICJicGJlcSIsICJiYmJlcSIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5v
ZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVb
MSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJh
bmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJieiIsIFt0bXAsIFNw
ZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAg
ICAgd2hlbiAiYnRpeiIsICJidHB6IiwgImJ0YnoiCisgICAgICAgICAgICAgICAgbG93ZXJNSVBT
Q29uZEJyYW5jaChuZXdMaXN0LCAiYnoiLCBub2RlKQorICAgICAgICAgICAgd2hlbiAiYnRpbnoi
LCAiYnRwbnoiLCAiYnRibnoiCisgICAgICAgICAgICAgICAgbG93ZXJNSVBTQ29uZEJyYW5jaChu
ZXdMaXN0LCAiYm56Iiwgbm9kZSkKKyAgICAgICAgICAgIHdoZW4gImJ0aW8iLCAiYnRwbyIsICJi
dGJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgd2hlbiAi
YnRpcyIsICJidHBzIiwgImJ0YnMiCisgICAgICAgICAgICAgICAgbG93ZXJNSVBTQ29uZEJyYW5j
aChuZXdMaXN0LCAiYnMiLCBub2RlKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5k
CisKKyMKKyMgU3BlY2lhbGl6YXRpb24gb2YgbG93ZXJpbmcgb2YgbWFsZm9ybWVkIEJhc2VJbmRl
eCBhZGRyZXNzZXMuCisjCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiByaXNjTG93ZXJNYWxm
b3JtZWRBZGRyZXNzZXNSZWN1cnNlKGxpc3QsIG5vZGUsICZibG9jaykKKyAgICAgICAgaWYgc2Nh
bGVTaGlmdCA9PSAwCisgICAgICAgICAgICB0bXAwID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3By
KQorICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFkZHAi
LCBbYmFzZSwgaW5kZXgsIHRtcDBdKQorICAgICAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdp
biwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBvZmZzZXQudmFsdWUpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdG1wMCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJsc2hpZnRpIiwg
W2luZGV4LCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIHNjYWxlU2hpZnQpLCB0bXAwXSk7Cisg
ICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFti
YXNlLCB0bXAwXSkKKyAgICAgICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcDAsIElt
bWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgb2Zmc2V0LnZhbHVlKSk7CisgICAgICAgIGVuZAorICAg
IGVuZAorZW5kCisKKyMKKyMgTG93ZXJpbmcgb2YgbWlzcGxhY2VkIGltbWVkaWF0ZXMgb2YgTUlQ
UyBzcGVjaWZpYyBpbnN0cnVjdGlvbnMuIEZvciBleGFtcGxlOgorIworIyBzbHR1IHJlZywgNCwg
MgorIworIyB3aWxsIGJlY29tZToKKyMKKyMgbW92ZSA0LCB0bXAKKyMgc2x0dSByZWcsIHRtcCwg
MgorIworCitkZWYgbWlwc0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhsaXN0KQorICAgIG5ld0xp
c3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAg
ICAgICAgIHdoZW4gInNsdCIsICJzbHR1IiwgInNsdGIiLCAic2x0dWIiCisgICAgICAgICAgICAg
ICAgaWYgbm9kZS5vcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICAg
ICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBb
bm9kZS5vcGVyYW5kc1sxXSwgdG1wXSwgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bj
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9k
ZS5vcGVyYW5kc1swXSwgdG1wLCBub2RlLm9wZXJhbmRzWzJdXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlz
dCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBT
cGVjaWFsaXphdGlvbiBvZiBsb3dlcmluZyBvZiBtaXNwbGFjZWQgYWRkcmVzc2VzLgorIworCitk
ZWYgbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMobGlzdCkKKyAgICBuZXdMaXN0
ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2Rl
LmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KKyAg
ICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ug
bm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFNwZWNp
YWxSZWdpc3Rlci5uZXcoIiRyYSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRpIiwgW25vZGUu
b3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFt0bXBdKQorICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW3Jpc2NBc1JlZ2lzdGVyKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMs
IG5vZGUub3BlcmFuZHNbMF0sICJwIiwgZmFsc2UpXSkKKyAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICAgICAgcmVzdG9yZUdQID0gZmFsc2U7
CisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5hZGRyZXNzPworICAgICAgICAg
ICAgICAgICAgICB0bXAgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDkiKQorICAgICAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLm9wZXJhbmRzWzBdLmNvZGVP
cmlnaW4sICJsb2FkcCIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAg
ICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFu
ZHNbMF0uaXNfYT8gTGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gbm9k
ZS5vcGVyYW5kc1swXQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAg
ICAgICAgICAgIHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9y
aWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdG9yZUdQID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRtcCA9IG5vZGUub3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5v
ZGUub3Bjb2RlLCBbdG1wXSkKKyAgICAgICAgICAgICAgICBpZiByZXN0b3JlR1AKKyAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW92ZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkczQiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJGdwIildKQorICAgICAgICAg
ICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAic2x0IiwgInNsdHUiCisgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2NBc1JlZ2lzdGVycyhuZXdMaXN0
LCBbXSwgbm9kZS5vcGVyYW5kcywgImkiKSkKKyAgICAgICAgICAgIHdoZW4gInNsdHViIiwgInNs
dGIiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUu
b3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2NB
c1JlZ2lzdGVycyhuZXdMaXN0LCBbXSwgbm9kZS5vcGVyYW5kcywgImIiKSkKKyAgICAgICAgICAg
IHdoZW4gImJ6IiwgImJueiIsICJicyIsICJibyIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9w
ZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBuZXdMaXN0ICs9IHBvc3RJbnN0
cnVjdGlvbnMKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAg
ICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMb3dlcmluZyBjb21wYXJl
cyBhbmQgdGVzdHMuCisjCisKK2RlZiBtaXBzTG93ZXJDb21wYXJlVGVtcGxhdGUobGlzdCwgbm9k
ZSwgb3BDbXAsIG9wTW92KQorICAgIHRtcDAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdw
cikKKyAgICB0bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgbGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtJbW1lZGlhdGUubmV3
KG5pbCwgMCksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgb3BDbXAsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRz
WzBdLCB0bXAwXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAxKSwgdG1wMV0pCisgICAgbGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcE1vdiwgW25vZGUub3BlcmFuZHNbMl0sIHRt
cDEsIHRtcDBdKQorZW5kCisKK2RlZiBtaXBzTG93ZXJDb21wYXJlcyhsaXN0KQorICAgIG5ld0xp
c3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5v
ZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAg
ICAgICAgIHdoZW4gImNpZXEiLCAiY3BlcSIsICJjYmVxIgorICAgICAgICAgICAgICAgIG1pcHNM
b3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAic3VicCIsICJtb3Z6IikKKyAgICAg
ICAgICAgIHdoZW4gImNpbmVxIiwgImNwbmVxIiwgImNibmVxIgorICAgICAgICAgICAgICAgIG1p
cHNMb3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAic3VicCIsICJtb3ZuIikKKyAg
ICAgICAgICAgIHdoZW4gInRpeiIsICJ0YnoiLCAidHB6IgorICAgICAgICAgICAgICAgIG1pcHNM
b3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAiYW5kcCIsICJtb3Z6IikKKyAgICAg
ICAgICAgIHdoZW4gInRpbnoiLCAidGJueiIsICJ0cG56IgorICAgICAgICAgICAgICAgIG1pcHNM
b3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAiYW5kcCIsICJtb3ZuIikKKyAgICAg
ICAgICAgIHdoZW4gInRpbyIsICJ0Ym8iLCAidHBvIgorICAgICAgICAgICAgICAgIHRtcCA9IFRt
cC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImFuZHAiLCBbbm9kZS5vcGVyYW5kc1sxXSwg
bm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbHQiLCBbbm9kZS5vcGVyYW5kc1syXSwgU3BlY2lh
bFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgdG1wXSkKKyAgICAgICAgICAgIHdoZW4gInRpcyIsICJ0
YnMiLCAidHBzIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2lu
LCA6Z3ByKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImFuZHAiLCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdG1w
XSkKKyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJzbHQiLCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
emVybyIpXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8
IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIExlYSBz
dXBwb3J0LgorIworCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIG1pcHNFbWl0TGVhKGRlc3RpbmF0
aW9uKQorICAgICAgICBpZiBkZXN0aW5hdGlvbiA9PSBiYXNlCisgICAgICAgICAgICAkYXNtLnB1
dHMgImFkZGl1ICN7ZGVzdGluYXRpb24ubWlwc09wZXJhbmR9LCAje29mZnNldC52YWx1ZX0iCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlvbi5t
aXBzT3BlcmFuZH0sICN7YmFzZS5taXBzT3BlcmFuZH0sICN7b2Zmc2V0LnZhbHVlfSIKKyAgICAg
ICAgZW5kCisgICAgZW5kCitlbmQKKworIworIyBBZGQgUElDIGNvbXBhdGlibGUgaGVhZGVyIGNv
ZGUgdG8gcHJvbG9ndWUvZW50cnkgcnV0aW5zLgorIworCitkZWYgbWlwc0FkZFBJQ0NvZGUobGlz
dCkKKyAgICBteUxpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8Cisg
ICAgICAgIG15TGlzdCA8PCBub2RlCisgICAgICAgIGlmIG5vZGUuaXNfYT8gTGFiZWwKKyAgICAg
ICAgICAgIGlmIC9fcHJvbG9ndWUkLy5tYXRjaChub2RlLm5hbWUpIHx8IC9eX2xsaW50X2Z1bmN0
aW9uXy8ubWF0Y2gobm9kZS5uYW1lKQorICAgICAgICAgICAgICAgICMgRnVuY3Rpb25zIGNhbGxl
ZCBmcm9tIHRyYW1wb2xpbmUvSklUIGNvZGVzLgorICAgICAgICAgICAgICAgIG15TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicGljaGRyIiwgW10pCisgICAgICAgICAg
ICBlbHNpZiAvX2xsaW50X29wX2NhdGNoLy5tYXRjaChub2RlLm5hbWUpCisgICAgICAgICAgICAg
ICAgIyBFeGNlcHRpb24gY2FjdGNoZXIgZW50cnkgcG9pbnQgZnVuY3Rpb24uCisgICAgICAgICAg
ICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJwaWNoZHJy
YSIsIFtdKQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgIH0KKyAgICBteUxpc3QK
K2VuZAorCisjCisjIEFjdHVhbCBsb3dlcmluZyBjb2RlIGZvbGxvd3MuCisjCisKK2NsYXNzIFNl
cXVlbmNlCisgICAgZGVmIGdldE1vZGlmaWVkTGlzdE1JUFMKKyAgICAgICAgcmVzdWx0ID0gQGxp
c3QKKworICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25seSBzZWUgaW5zdHJ1Y3Rpb25z
IGFuZCBsYWJlbHMuCisgICAgICAgIHJlc3VsdC5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8
CisgICAgICAgICAgICB1bmxlc3Mgbm9kZS5pc19hPyBJbnN0cnVjdGlvbiBvcgorICAgICAgICAg
ICAgICAgICAgICBub2RlLmlzX2E/IExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUu
aXNfYT8gTG9jYWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IFNraXAK
KyAgICAgICAgICAgICAgICByYWlzZSAiVW5leHBlY3RlZCAje25vZGUuaW5zcGVjdH0gYXQgI3tu
b2RlLmNvZGVPcmlnaW59IgorICAgICAgICAgICAgZW5kCisgICAgICAgIH0KKworICAgICAgICBy
ZXN1bHQgPSBtaXBzQWRkUElDQ29kZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dl
clNpbXBsZUJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlckhhcmRC
cmFuY2hPcHMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJTaGlmdE9wcyhyZXN1
bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3NlcyhyZXN1bHQp
IHsKKyAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8CisgICAgICAgICAgICBpZiBhZGRyZXNz
LmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAoLTB4ZmZmZi4uMHhmZmZmKS5pbmNsdWRl
PyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGZhbHNlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSByaXNj
TG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBy
aXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlw
c0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NM
b3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVzdWx0LCAtMHhmZmZmLi4weGZmZmYpCisgICAgICAg
IHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3Nlc0NvbW1vbihyZXN1bHQpCisgICAg
ICAgIHJlc3VsdCA9IG1pcHNMb3dlck1pc3BsYWNlZEFkZHJlc3Nlc1NwZWNpZmljKHJlc3VsdCkK
KyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0ZXJSZXVzZShyZXN1bHQpCisgICAgICAg
IHJlc3VsdCA9IG1pcHNMb3dlckNvbXBhcmVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gYXNz
aWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpncHIsIE1JUFNfVEVNUF9HUFJTKQor
ICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmZw
ciwgTUlQU19URU1QX0ZQUlMpCisKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGVuZAorZW5k
CisKK2RlZiBtaXBzT3BlcmFuZHMob3BlcmFuZHMpCisgICAgb3BlcmFuZHMubWFwe3x2fCB2Lm1p
cHNPcGVyYW5kfS5qb2luKCIsICIpCitlbmQKKworZGVmIG1pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpCisgICAgbWlwc09wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJd
KQorZW5kCisKK2RlZiBnZXRNSVBTT3Bjb2RlKG9wY29kZSwgc3VmZml4KQorCitlbmQKKworZGVm
IGVtaXRNSVBTQ29tcGFjdChvcGNvZGUsIG9wY29kZWksIG9wZXJhbmRzKQorICAgIHBvc3RmaXgg
PSAiIgorICAgIGlmIG9wY29kZSA9PSAic3ViIgorICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQiCisgICAgICAgICAgICBvcGVy
YW5kc1swXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBvcGVy
YW5kc1swXS52YWx1ZSkKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRl
CisgICAgICAgICAgICBvcGNvZGUgPSAiYWRkIgorICAgICAgICAgICAgb3BlcmFuZHNbMV0gPSBJ
bW1lZGlhdGUubmV3KG9wZXJhbmRzWzFdLmNvZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMV0udmFs
dWUpCisgICAgICAgIGVuZAorICAgICAgICBwb3N0Zml4ID0gInUiCisgICAgZWxzaWYgb3Bjb2Rl
ID09ICJhZGQiCisgICAgICAgIHBvc3RmaXggPSAidSIKKyAgICBlbmQKKyAgICBpZiBvcGVyYW5k
cy5zaXplID09IDMKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1
ZX0iCisgICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAg
ICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAje29wZXJhbmRzWzJdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0udmFsdWV9Igor
ICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0g
I3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UK
KyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/
IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNt
LnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAg
ICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTU2hpZnRDb21wYWN0KG9wY29k
ZSwgb3BlcmFuZHMpCisgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIGlmIChvcGVy
YW5kc1sxXS5pc19hPyBJbW1lZGlhdGUpCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
fSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0udmFsdWV9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1
dHMgIiN7b3Bjb2RlfXYgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgor
ICAgICAgICBpZiBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICRhc20ucHV0cyAi
I3tvcGNvZGV9diAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAg
ICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFMob3Bjb2RlLCBvcGVyYW5kcykKKyAg
ICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tt
aXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgZWxzZQorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTRG91
YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgImMu
I3ticmFuY2hPcGNvZGV9LmQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICBp
ZiAoIW5lZykKKyAgICAgICAgJGFzbS5wdXRzICJiYzF0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJiYzFmICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisgICAgZGVmIGxvd2VyTUlQ
UworICAgICAgICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmluZworICAgICAgICBjYXNlIG9w
Y29kZQorICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiCisgICAgICAgICAgICBp
ZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAg
ICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAgICAg
ICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMl0ucmVnaXN0ZXI/CisgICAgICAgICAgICAg
ICAgaWYgb3BlcmFuZHNbMF0udmFsdWUgPT0gMCAjYW5kIHN1ZmZpeC5lbXB0eT8KKyAgICAgICAg
ICAgICAgICAgICAgdW5sZXNzIG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCisgICAgICAgICAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
I3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIGVsc2lmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/Cisg
ICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAg
ICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImFkZHUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1t
ZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHVubGVzcyBJbW1lZGlhdGUubmV3KG5pbCwgMCkg
PT0gb3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9
IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFu
ZGkiLCAiYW5kcCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgiYW5kIiwgImFuZCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJvcmkiLCAib3JwIgorICAgICAgICAgICAgZW1pdE1JUFND
b21wYWN0KCJvciIsICJvcnIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAib3JpcyIKKyAgICAg
ICAgICAgIGVtaXRNSVBTQ29tcGFjdCgib3IiLCAib3JycyIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJ4b3JpIiwgInhvcnAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoInhvciIsICJl
b3IiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibHNoaWZ0aSIsICJsc2hpZnRwIgorICAgICAg
ICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNsbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJyc2hpZnRpIiwgInJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgi
c3JhIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInVyc2hpZnRpIiwgInVyc2hpZnRwIgorICAg
ICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNybCIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJtdWxpIiwgIm11bHAiCisgICAgICAgICAgICBlbWl0TUlQUygibXVsIiwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gInN1YmkiLCAic3VicCIsICJzdWJpcyIKKyAgICAgICAgICAgIGVtaXRN
SVBTQ29tcGFjdCgic3ViIiwgInN1YnMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibmVnaSIs
ICJuZWdwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJuZWd1ICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibm90aSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibm9yICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgJHplcm8iCisgICAgICAgIHdoZW4gImxvYWRpIiwg
ImxvYWRpcyIsICJsb2FkcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYnUgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRicyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibGIgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gInN0b3JlYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2IgI3ttaXBzT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxodSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9h
ZGhzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsaCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
aHYgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGQiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkYzEgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2RjMSAje21p
cHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJhZGRkIgorICAgICAgICAgICAg
ZW1pdE1JUFMoImFkZC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAg
ICAgICBlbWl0TUlQUygiZGl2LmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3ViZCIKKyAg
ICAgICAgICAgIGVtaXRNSVBTKCJzdWIuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJtdWxk
IgorICAgICAgICAgICAgZW1pdE1JUFMoIm11bC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
InNxcnRkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzcXJ0LmQgI3ttaXBzRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICByYWlzZSAi
aW52YWxpZCBvcHMgb2YgI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVu
bGVzcyBvcGVyYW5kc1sxXS5pc19hPyBGUFJlZ2lzdGVySUQgYW5kIG9wZXJhbmRzWzBdLnJlZ2lz
dGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Y3Z0LmQudyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3Bl
cmFuZH0iCisgICAgICAgIHdoZW4gImJkZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJy
YW5jaCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxIgorICAgICAg
ICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZGd0IgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIHRy
dWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXEiCisgICAgICAgICAgICBlbWl0TUlQ
U0RvdWJsZUJyYW5jaCgidWx0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHQi
CisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0IiwgZmFsc2UsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5j
aCgib2xlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGVxdW4iCisgICAgICAg
ICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZG5lcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3R1biIKKyAgICAgICAgICAgIGVtaXRN
SVBTRG91YmxlQnJhbmNoKCJvbGUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRn
dGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0IiwgdHJ1ZSwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gImJkbHR1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJ1bHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcXVuIgor
ICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIGZhbHNlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYnRkMmkiCisgICAgICAgICAgICAjIEZJWE1FOiBtYXkgYmUgYSBnb29k
IGlkZWEgdG8ganVzdCBnZXQgcmlkIG9mIHRoaXMgaW5zdHJ1Y3Rpb24sIHNpbmNlIHRoZSBpbnRl
cnByZXRlcgorICAgICAgICAgICAgIyBjdXJyZW50bHkgZG9lcyBub3QgdXNlIGl0LgorICAgICAg
ICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29k
ZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInRkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2
dC53LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgd2hl
biAiYmNkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC53LmQgI3tNSVBTX1NDUkFUQ0hf
RlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje01JUFNfU0NS
QVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LmQudyAj
e01JUFNfU0NSQVRDSF9GUFIubWlwc09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1Np
bmdsZUxvfSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIHRydWUsIFtN
SVBTX1NDUkFUQ0hfRlBSLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl1dKQorICAgICAgICAgICAg
JGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICR6ZXJvLCAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAibW92ZHoiCisgICAgICAgICAgICAjIEZJ
WE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KKyAgICAgICAgICAgIHJhaXNl
ICJNSVBTIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59Igor
ICAgICAgICB3aGVuICJwb3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgImx3ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRz
cCwgJHNwLCA0IgorICAgICAgICB3aGVuICJwdXNoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGRpdSAkc3AsICRzcCwgLTQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgIHdoZW4gIm1vdmUiLCAic3hpMnAiLCAi
enhpMnAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAg
ICAgICAgICAgICBtaXBzTW92ZUltbWVkaWF0ZShvcGVyYW5kc1swXS52YWx1ZSwgb3BlcmFuZHNb
MV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICN7
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAg
IHdoZW4gIm5vcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICB3aGVuICJi
aWVxIiwgImJwZXEiLCAiYmJlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7bWlwc09w
ZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICB3aGVuICJiaW5lcSIsICJicG5lcSIsICJiYm5lcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Ym5lICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgICAgICB3aGVuICJiaWd0IiwgImJwZ3QiLCAiYmJndCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiYmd0ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNb
Ml0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWd0ZXEiLCAiYnBndGVxIiwgImJiZ3RlcSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmdlICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFd
KX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0IiwgImJwbHQi
LCAiYmJsdCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmx0ICN7bWlwc09wZXJhbmRzKG9wZXJh
bmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0
ZXEiLCAiYnBsdGVxIiwgImJibHRlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmxlICN7bWlw
c09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAg
ICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgImogI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqciAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjYWxsIgorICAgICAg
ICAgICAgaWYgb3BlcmFuZHNbMF0ubGFiZWw/CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJq
YWwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJqYWxyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIHdoZW4gImJyZWFrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
cmVhayIKKyAgICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJqciAkcmEi
CisgICAgICAgIHdoZW4gImNpYSIsICJjcGEiLCAiY2JhIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpYWVxIiwg
ImNwYWVxIiwgImNiYWVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNb
Ml0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpYiIsICJjcGIiLCAiY2JiIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgIHdoZW4gImNpYmVxIiwgImNwYmVxIiwgImNiYmVxIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpZ3Qi
LCAiY3BndCIsICJjYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lndGVxIiwgImNwZ3RlcSIsICJjYmd0ZXEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAx
IgorICAgICAgICB3aGVuICJjaWx0IiwgImNwbHQiLCAiY2JsdCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpbHRl
cSIsICJjcGx0ZXEiLCAiY2JsdGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVy
YW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJh
bmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAicGVlayIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
dmFsdWUgKiA0fSgkc3ApIgorICAgICAgICB3aGVuICJwb2tlIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzdyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAq
IDR9KCRzcCkiCisgICAgICAgIHdoZW4gImZpaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJt
dGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNTaW5nbGVM
b30iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAiZmQyaWkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAj
e29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzU2luZ2xlSGl9Igor
ICAgICAgICB3aGVuICJibyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmd0ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sy
XS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
bHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYnoiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJi
bnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJuZSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAiCisgICAgICAgICAgICBvcGVyYW5kc1swXS5taXBz
RW1pdExlYShvcGVyYW5kc1sxXSkKKyAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICAgICAg
cmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3Bl
Y3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtdWx0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZsbyAj
e29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZoaSAj
e29wZXJhbmRzWzNdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibW92eiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibW92eiAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3
aGVuICJtb3ZuIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZuICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNsdCIsICJzbHRiIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzbHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0dSIs
ICJzbHR1YiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJwaWNoZHIiCisgICAgICAgICAgICAkYXNtLnB1dFN0cigi
T0ZGTElORV9BU01fQ1BMT0FEKCQyNSkiKQorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICRz
NCwgJGdwIgorICAgICAgICB3aGVuICJwaWNoZHJyYSIKKyAgICAgICAgICAgICRhc20ucHV0U3Ry
KCJPRkZMSU5FX0FTTV9DUExPQUQoJDMxKSIpCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUg
JHM0LCAkZ3AiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bj
b2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBl
bmQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlz
Yy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKaW5kZXggNDRi
NGRiZC4uNDkxYTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vcmlzYy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJi
CkBAIC02MywxMCArNjMsNiBAQCBkZWYgcmlzY0xvd2VyU2ltcGxlQnJhbmNoT3BzKGxpc3QpCiAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24p
CiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCBicmFuY2gsIFtub2RlLm9wZXJhbmRzWy0xXV0pCi0gICAgICAgICAgICB3aGVuICdibXVs
aXMnLCAnYm11bHonLCAnYm11bG56JwotICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9ICR+LnBv
c3RfbWF0Y2gKLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24pCi0g
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAiYnRpIiArIGNvbmRpdGlvbiwgW25vZGUub3BlcmFuZHNbLTJdLCBub2RlLm9wZXJhbmRzWy0x
XV0pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAg
ICAgICAgICAgICBlbmQKQEAgLTkzLDEyICs4OSwyMiBAQCBkZWYgcmlzY0xvd2VySGFyZEJyYW5j
aE9wcyhsaXN0KQogICAgIG5ld0xpc3QgPSBbXQogICAgIGxpc3QuZWFjaCB7CiAgICAgICAgIHwg
bm9kZSB8Ci0gICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24gYW5kIG5vZGUub3Bjb2Rl
ID09ICJibXVsaW8iCi0gICAgICAgICAgICB0bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCi0gICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIp
Ci0gICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVy
YW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5ub3RhdGlvbikKLSAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInJzaGlmdGkiLCBbbm9kZS5vcGVyYW5k
c1stMl0sIEltbWVkaWF0ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCAzMSksIHRtcDJdKQotICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmluZXEi
LCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5kc1stMV1dKQorICAgICAgICBpZiBub2RlLmlzX2E/
IEluc3RydWN0aW9uCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCisg
ICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICAiYm11bGlvIgor
ICAgICAgICAgICAgICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAg
ICAgICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
c211bGxpIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFu
ZHNbMV0sIHRtcDFdLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJh
bmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2RlLmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0pCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
YmluZXEiLCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5kc1stMV1dKQorICAgICAgICAgICAgd2hl
biAvXmJtdWxpLworICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9ICR+LnBvc3RfbWF0Y2gKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnRpIiArIGNv
bmRpdGlvbiwgW25vZGUub3BlcmFuZHNbLTJdLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBl
bmQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCiAgICAgICAgIGVu
ZApAQCAtNDQ3LDcgKzQ1Myw3IEBAIGRlZiByaXNjQXNSZWdpc3RlcnMocHJlTGlzdCwgcG9zdExp
c3QsIG9wZXJhbmRzLCBzdWZmaXgpCiAgICAgbmV3T3BlcmFuZHMKIGVuZAogCi1kZWYgcmlzY0xv
d2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCitkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVz
c2VzQ29tbW9uKGxpc3QpCiAgICAgbmV3TGlzdCA9IFtdCiAgICAgbGlzdC5lYWNoIHsKICAgICAg
ICAgfCBub2RlIHwKQEAgLTQ4Myw2ICs0ODksMjUgQEAgZGVmIHJpc2NMb3dlck1pc3BsYWNlZEFk
ZHJlc3NlcyhsaXN0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUub3Bjb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJpc2NBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRz
LCAiZCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90
YXRpb24pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9u
cworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5k
CisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCitkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVz
c2VzU3BlY2lmaWMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAg
ICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAg
ICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2Rl
LmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKICAgICAgICAgICAgIHdo
ZW4gImptcCIsICJjYWxsIgogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLm9wY29kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMGEzNjFlYi4uMDhkZGMwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0xMS0xNCAgQmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmku
Y29tPgorCisgICAgICAgIE1JUFMgTExJbnQgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcwNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExMSW50IGltcGxlbWVudGF0aW9uIGZv
ciBNSVBTLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTItMTEtMTMgIENocmlz
dG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBVc2Ug
cHJlZml4IGZvcm0gb2YgaW5jcmVtZW50IC8gZGVjcmVtZW50IG9wZXJhdG9ycyBpbiBXVEYgU3Ry
aW5nIGNsYXNzZXMgd2hlbiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGFiODA4Ni4uZTAwOTM3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybS5oCkBAIC05MjUsNyArOTI1LDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBc
CiAgICAgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShRVCkgJiYg
T1MoTElOVVgpKSkgXAotICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
X1RIVU1CMikpCisgICAgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhV
TUIyKSB8fCBDUFUoTUlQUykpCiAjZGVmaW5lIEVOQUJMRV9MTElOVCAxCiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174176</attachid>
            <date>2012-11-14 09:13:37 -0800</date>
            <delta_ts>2012-11-27 09:56:52 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57665</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDhiOWM5MTQuLjM5ZDFlZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTE0ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRo
dW5rcyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJi
OiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6CisKIDIwMTItMTEtMTQgIFBl
dGVyIEdhbCAgPGdhbHBldGVyQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdW0FSTV1S
RUdSRVNTSU9OKHIxMzM5ODUpOiBJdCBicm9rZSB0aGUgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IDViNmRh
OTYuLmFjYjA1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMTMwNCw3ICsxMzA0LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBqdW1wKFJlZ2lzdGVySUQgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJs
ZXIuanIodGFyZ2V0KTsKKyAgICAgICAgbW92ZSh0YXJnZXQsIE1JUFNSZWdpc3RlcnM6OnQ5KTsK
KyAgICAgICAgbV9hc3NlbWJsZXIuanIoTUlQU1JlZ2lzdGVyczo6dDkpOwogICAgICAgICBtX2Fz
c2VtYmxlci5ub3AoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCmluZGV4IGIyYzMzN2QuLjUwYzAyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNDcsNiArNDcsMTggQEAKIAogI2lmIEVO
QUJMRShKSVQpCiAKKyNpZiBDUFUoTUlQUykKKyNpZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgTE9B
RF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgXAorICAgICAgICAiLnNldCBub3Jlb3JkZXIiICJc
biIgXAorICAgICAgICAiLmNwbG9hZCAkMjUiICJcbiIgXAorICAgICAgICAiLnNldCByZW9yZGVy
IiAiXG4iIFwKKyAgICAgICAgImxhICR0OSwgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJc
biIKKyNlbHNlCisjZGVmaW5lIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24pICIiICJcbiIK
KyNlbmRpZgorI2VuZGlmCisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2lmIENPTVBJTEVSKEdD
QykgJiYgQ1BVKFg4Nl82NCkKQEAgLTIwMSw2ICsyMTMsNTIgQEAKICAgICAgICAgImIgIiBMT0NB
TF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCiAgICAgKTsK
IAorI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoTUlQUykKKworI2RlZmluZSBGVU5DVElPTl9X
UkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAg
ICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJc
biIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5H
KGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMj
V2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgIm1vdmUgJGExLCAkcmEiICJcbiIgXAorICAg
ICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAi
XG4iIFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQURE
UkVTU19FQ0koZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAg
ICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJP
TChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIg
XAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBc
CisgICAgICAgICJtb3ZlICRhMywgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZF
UkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2Rl
ZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpJKGZ1bmN0aW9uKSBc
CisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NU
UklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAor
ICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9O
X1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAy
MCgkc3ApIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJX
aXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQ
UEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAg
ICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJc
biIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5H
KGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMj
V2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjQoJHNwKSIgIlxuIiBcCisg
ICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3Mi
ICJcbiIgXAorICAgICk7CisKICNlbmRpZgogCiAjZGVmaW5lIFBfRlVOQ1RJT05fV1JBUFBFUl9X
SVRIX1JFVFVSTl9BRERSRVNTX0UoZnVuY3Rpb24pIFwKQEAgLTE1NTUsNiArMTYxMywxNyBAQCBT
WU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgIm1vdiBy
MCwgcjUiICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZh
bHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKE1J
UFMpCithc20oCisiLnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUp
ICJcbiIKK1NZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAg
ICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRl
KQorICAgICJsdyAkczAsIC00MCgkczApIiAiXG4iCisgICAgIm1vdmUgJGEwLCAkczAiICJcbiIK
KyAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZSkgIlxuIgorKTsKICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1Rf
Q0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAK
aW5kZXggNTIxZGZhYy4uMzY3ZGFlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKQEAgLTI4MCwxMSArMjgwLDEzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJW
RURfUzBfT0ZGU0VUICAgICAgICAgNjQKICNkZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAg
ICAgIDY4CiAjZGVmaW5lIFBSRVNFUlZFRF9TMl9PRkZTRVQgICAgICAgICA3MgotI2RlZmluZSBQ
UkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDc2Ci0jZGVmaW5lIFRIVU5LX1JFVFVSTl9B
RERSRVNTX09GRlNFVCA4MAotI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgODQK
LSNkZWZpbmUgR0xPQkFMX0RBVEFfT0ZGU0VUICAgICAgICAgMTAwCi0jZGVmaW5lIFNUQUNLX0xF
TkdUSCAgICAgICAgICAgICAgIDEwNAorI2RlZmluZSBQUkVTRVJWRURfUzNfT0ZGU0VUICAgICAg
ICAgNzYKKyNkZWZpbmUgUFJFU0VSVkVEX1M0X09GRlNFVCAgICAgICAgIDgwCisjZGVmaW5lIFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgODQKKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FE
RFJFU1NfT0ZGU0VUIDg4CisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA5Mgor
I2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQgICAgICAgICAxMDgKKyNkZWZpbmUgU1RBQ0tfTEVO
R1RIICAgICAgICAgICAgICAgMTEyCiAjZWxpZiBDUFUoU0g0KQogI2RlZmluZSBTWU1CT0xfU1RS
SU5HKG5hbWUpICNuYW1lCiAvKiBjb2RlIChyNCksIEpTU3RhY2sqIChyNSksIENhbGxGcmFtZSog
KHI2KSwgdm9pZCogdW51c2VkMSAocjcpLCB2b2lkKiB1bnVzZWQyKHNwKSwgSlNHbG9iYWxEYXRh
IChzcCkqLwpAQCAtMzE4LDYgKzMyMCw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkg
IjoiICJcbiIKICAgICAiYWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJu
b3AiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIK
K0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJh
bXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkBAIC00NTEsNiArNDU2
LDggQEAgYXNtICgKIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAi
YWRkaXUgJDI5LCQyOSwtIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAg
ICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAic3cgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMTksIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAg
InN3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQy
OSkiICJcbiIKICAgICAic3cgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9T
MV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCkBAIC00NjcsMTIgKzQ3NCwxNyBA
QCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAg
ICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIo
JDI5KSIgIlxuIgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNT
X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAk
MjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogIi5zZXQgcmVv
cmRlciIgIlxuIgogIi5zZXQgbWFjcm8iICJcbiIKICIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlU
cmFtcG9saW5lKSAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5k
KSAiXG4iCitISURFX1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5H
KGN0aVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCiApOwogCiBhc20gKApAQCAtNDg1LDggKzQ5Nyw4
IEBAIGFzbSAoCiAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJc
biIKIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAjaWYgV1RG
X01JUFNfUElDCi0gICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
R1BfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCisiLmNwbG9hZCAkMzEi
ICJcbiIKICAgICAibGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIK
ICIuc2V0IG5vbWFjcm8iICJcbiIKICAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhy
b3cpICJcbiIKQEAgLTQ5OCw2ICs1MTAsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFt
cG9saW5lKSAiOiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAg
JDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxu
IgorICAgICJsdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNF
VCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzRfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgog
ICAgICJqciAgICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxV
RV9PRihTVEFDS19MRU5HVEgpICJcbiIKQEAgLTUxOCw2ICs1MzIsOCBAQCBTWU1CT0xfU1RSSU5H
KGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAg
JDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxu
IgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNF
VCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAk
MzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkg
IigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtODE1LDYgKzgzMSw4IEBA
IEpJVFRodW5rczo6SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICBBU1NF
UlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0g
UFJFU0VSVkVEX1MwX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOwogICAg
IEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMy
KSA9PSBQUkVTRVJWRURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0
cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMykgPT0gUFJFU0VSVkVEX1MzX09GRlNFVCk7
CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2Vy
dmVkUzQpID09IFBSRVNFUlZFRF9TNF9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNF
UlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yo
c3RydWN0IEpJVFN0YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRT
dGFja0ZyYW1lLCBzdGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwpAQCAtMTEwOCw5ICsx
MTI2LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFQgdGhyb3dFeGNlcHRpb25Gcm9t
T3BDYWxsKEpJVFN0YWNrRnJhbWUmIGppdFN0YWNrRnIKICAgICAgICAgIi5nbG9ibCAiIFNZTUJP
TF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAogICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkco
Y3RpXyMjb3ApICJcbiIgXAogICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxu
IiBcCi0gICAgICAgICJsdyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQ
X09GRlNFVCkgIigkMjkpIiAiXG4iIFwKLSAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9W
QUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAg
ICAgICIuc2V0IG1hY3JvIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAg
ICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVT
U19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RS
SU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNldCBub21hY3JvIiAi
XG4iIFwKICAgICAgICAgIi5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9TVFJJTkcoSklU
U3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgK
aW5kZXggM2JmMTNiYi4uYzM4YjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
aApAQCAtMjI4LDYgKzIyOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkKiBwcmVz
ZXJ2ZWRTMDsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzE7CiAgICAgICAgIHZvaWQqIHByZXNl
cnZlZFMyOworICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMzsKKyAgICAgICAgdm9pZCogcHJlc2Vy
dmVkUzQ7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CiAKICAgICAgICAg
UmV0dXJuQWRkcmVzc1B0ciB0aHVua1JldHVybkFkZHJlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZGEyZDUxMC4u
MTU3NTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zm
bGluZUFzbUNvbmZpZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZmxpbmVBc21Db25maWcuaApAQCAtMzgsNiArMzgsNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9B
Uk12NyAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNN
X0FSTXY3cyAwCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMAogCiAjZWxzZSAvLyAhRU5BQkxF
KExMSU5UX0NfTE9PUCkKIApAQCAtNjcsNiArNjgsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01f
WDg2XzY0IDAKICNlbmRpZgogCisjaWYgQ1BVKE1JUFMpCisjZGVmaW5lIE9GRkxJTkVfQVNNX01J
UFMgMQorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZW5kaWYKKwogI2VuZGlm
IC8vICFFTkFCTEUoTExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExMSw0
ICsxMTgsMTcgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fVkFMVUVfUFJPRklMRVIgMAogI2VuZGlm
CiAKKyNpZiBDUFUoTUlQUykKKyNpZmRlZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgUyh4KSAjeAor
I2RlZmluZSBTWCh4KSBTKHgpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcpIFwKKyAg
ICAiLnNldCBub3Jlb3JkZXJcbiIgXAorICAgICIuY3Bsb2FkICIgU1gocmVnKSAiXG4iIFwKKyAg
ICAiLnNldCByZW9yZGVyXG4iCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVn
KQorI2VuZGlmCisjZW5kaWYKKwogI2VuZGlmIC8vIExMSW50T2ZmbGluZUFzbUNvbmZpZ19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KaW5kZXggMDBkNWM0Zi4uOWRlNDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTgyLDEwICsxODIsOCBAQCBt
YWNybyBhc3NlcnQoYXNzZXJ0aW9uKQogZW5kCiAKIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQotICAgIGlmIENfTE9PUAotICAgICAgICAj
IEluIG91ciBjYXNlLCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4gCi0g
ICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAgICBlbHNpZiBBUk12NworICAg
IGlmIENfTE9PUCBvciBBUk12NyBvciBNSVBTCisgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdl
J3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBk
ZXN0aW5hdGlvblJlZ2lzdGVyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBwb3Ag
ZGVzdGluYXRpb25SZWdpc3RlcgpAQCAtMTk1LDEwICsxOTMsOCBAQCBtYWNybyBwcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKIGVuZAogCiBtYWNybyBy
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBD
X0xPT1AKLSAgICAgICAgIyBJbiBvdXIgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5
dGVjb2RlIHZQQy4gCi0gICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYg
QVJNdjcKKyAgICBpZiBDX0xPT1Agb3IgQVJNdjcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9P
UCBjYXNlLCB3ZSdyZSBvbmx5IHJlc3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBt
b3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAg
cHVzaCBzb3VyY2VSZWdpc3RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCA4ZDVjZGYxLi45YTE3OTg1
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMTMsNiArMTEzLDEwIEBAIG1hY3JvIGNDYWxsMihm
dW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgcG9rZSBhcmcxLCAwCiAgICAgICAgIHBva2Ug
YXJnMiwgMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAgICBt
b3ZlIGFyZzEsIGEwCisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgY2FsbCBmdW5jdGlv
bgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwg
YXJnMSwgYXJnMgogICAgIGVsc2UKQEAgLTEzNCw2ICsxMzgsMTIgQEAgbWFjcm8gY0NhbGw0KGZ1
bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQogICAgICAgICBwb2tlIGFyZzMsIDIKICAg
ICAgICAgcG9rZSBhcmc0LCAzCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICBlbHNpZiBNSVBT
CisgICAgICAgIG1vdmUgYXJnMSwgYTAKKyAgICAgICAgbW92ZSBhcmcyLCBhMQorICAgICAgICBt
b3ZlIGFyZzMsIGEyCisgICAgICAgIG1vdmUgYXJnNCwgYTMKKyAgICAgICAgY2FsbCBmdW5jdGlv
bgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBlcnJvcgogICAgIGVsc2UKQEAgLTE4MTgsNiAr
MTgyOCwyMCBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikKICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KICAg
ICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCiAgICAgICAgIGxvYWRw
IEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGVsc2lmIE1JUFMKKyAgICAg
ICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgICAgIHN0b3Jl
cCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3ZlIHQwLCB0
MgorICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCisgICAgICAgIHN0
b3JlcCB0MywgUmV0dXJuUENbY2ZyXQorICAgICAgICBtb3ZlIGNmciwgdDAKKyAgICAgICAgbG9h
ZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBsb2FkcCBKU0Z1bmN0
aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAg
bW92ZSB0MCwgYTAKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0K
KyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGxv
YWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAgIGVsc2lmIENfTE9PUAog
ICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICAgICAg
c3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCmluZGV4IDA3OGJlOGMuLmQ3ZDA0ZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCkBAIC0xNzksNyArMTc5LDgg
QEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRk
cmVzc2VzRG91YmxlKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2Vk
SW1tZWRpYXRlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZElt
bWVkaWF0ZXMocmVzdWx0LCAwLi4weGZmKQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNw
bGFjZWRBZGRyZXNzZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFj
ZWRBZGRyZXNzZXNDb21tb24ocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNw
bGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
clJlZ2lzdGVyUmV1c2UocmVzdWx0KQogICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNU
b1RlbXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgQVJNdjdfRVhUUkFfR1BSUykKICAgICAgICAgcmVz
dWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpmcHIsIEFSTXY3X0VY
VFJBX0ZQUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9i
YWNrZW5kcy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJi
CmluZGV4IDc4ZTU0NTcuLmVmOTM1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2JhY2tlbmRzLnJiCkBAIC0yNSw2ICsyNSw3IEBAIHJlcXVpcmUgImNvbmZpZyIKIHJl
cXVpcmUgImFybXY3IgogcmVxdWlyZSAiYXN0IgogcmVxdWlyZSAieDg2IgorcmVxdWlyZSAibWlw
cyIKIHJlcXVpcmUgImNsb29wIgogCiBCQUNLRU5EUyA9CkBAIC0zMiw2ICszMyw3IEBAIEJBQ0tF
TkRTID0KICAgICAgIlg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAorICAgICAi
TUlQUyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCkBAIC00NSw2ICs0Nyw3IEBAIFdPUktJTkdf
QkFDS0VORFMgPQogICAgICAiWDg2IiwKICAgICAgIlg4Nl82NCIsCiAgICAgICJBUk12NyIsCisg
ICAgICJNSVBTIiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgppbmRleCBlMDQ3YjJhLi40ZTcwNjI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25z
LnJiCkBAIC0yNjUsNiArMjY1LDE2IEBAIEFSTXY3X0lOU1RSVUNUSU9OUyA9CiAgICAgICJvcmlz
IgogICAgIF0KIAorTUlQU19JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAibW92eiIsCisgICAg
Im1vdm4iLAorICAgICJzbHQiLAorICAgICJzbHR1IiwKKyAgICAicGljaGRyIiwKKyAgICAicGlj
aGRycmEiCisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJjbG9vcENy
YXNoIiwgICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAgLTI4MSw3ICsyOTEsNyBAQCBDWFhfSU5T
VFJVQ1RJT05TID0KICAgICAgImNsb29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVyYW5kcwog
ICAgIF0KIAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNU
SU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKK0lOU1RSVUNUSU9O
UyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk12N19JTlNUUlVD
VElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJ
T05fUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgn
KSArICcpKVxcWicpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL21pcHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMzQ0MmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCkBAIC0wLDAgKzEs
ODY4IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1JUFMgVEVD
SE5PTE9HSUVTLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgTUlQUyBURUNI
Tk9MT0dJRVMsIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CityZXF1aXJlICdyaXNjJworCitjbGFzcyBBc3NlbWJsZXIKKyAgICBkZWYgcHV0U3RyKHN0cikK
KyAgICAgICAgQG91dHAucHV0cyBzdHIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBOb2RlCisgICAg
ZGVmIG1pcHNTaW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gbWlwc09wZXJhbmQKKyAg
ICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNz
IGRvdWJsZU9wZXJhbmQgPX4gL15cJGYvCisgICAgICAgICIkZiIgKyAoJH4ucG9zdF9tYXRjaC50
b19pICsgMSkudG9fcworICAgIGVuZAorICAgIGRlZiBtaXBzU2luZ2xlTG8KKyAgICAgICAgZG91
YmxlT3BlcmFuZCA9IG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBu
YW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eXCRmLworICAg
ICAgICBkb3VibGVPcGVyYW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgU3BlY2lhbFJlZ2lzdGVy
IDwgTm9DaGlsZHJlbgorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBAbmFtZQorICAgIGVu
ZAorCisgICAgZGVmIGR1bXAKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiByZWdp
c3Rlcj8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKK01JUFNfVEVNUF9HUFJTID0gW1Nw
ZWNpYWxSZWdpc3Rlci5uZXcoIiR0NSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDYiKSwgU3Bl
Y2lhbFJlZ2lzdGVyLm5ldygiJHQ3IiksCisgICAgICAgICAgICAgICAgICAgIFNwZWNpYWxSZWdp
c3Rlci5uZXcoIiR0OCIpXQorTUlQU19URU1QX0ZQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygi
JGYxNiIpXQorTUlQU19TQ1JBVENIX0ZQUiA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRmMTgiKQor
CitkZWYgbWlwc01vdmVJbW1lZGlhdGUodmFsdWUsIHJlZ2lzdGVyKQorICAgIGlmIHZhbHVlID09
IDAKKyAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tyZWdpc3Rlci5taXBzT3BlcmFuZH0sICR6ZXJv
LCAkemVybyIKKyAgICBlbHNlCisgICAgICAgICRhc20ucHV0cyAibGkgI3tyZWdpc3Rlci5taXBz
T3BlcmFuZH0sICN7dmFsdWV9IgorICAgIGVuZAorZW5kCisKKworY2xhc3MgUmVnaXN0ZXJJRAor
ICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiYTAi
CisgICAgICAgICAgICAiJGEwIgorICAgICAgICB3aGVuICJhMSIKKyAgICAgICAgICAgICIkYTEi
CisgICAgICAgIHdoZW4gInIwIiwgInQwIgorICAgICAgICAgICAgIiR2MCIKKyAgICAgICAgd2hl
biAicjEiLCAidDEiCisgICAgICAgICAgICAiJHYxIgorICAgICAgICB3aGVuICJ0MiIKKyAgICAg
ICAgICAgICIkdDIiCisgICAgICAgIHdoZW4gInQzIgorICAgICAgICAgICAgIiRzMyIKKyAgICAg
ICAgd2hlbiAidDQiICAgIyBQQyByZWcgaW4gbGxpbnQKKyAgICAgICAgICAgICIkczIiCisgICAg
ICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgIiR0NSIKKyAgICAgICAgd2hlbiAidDYiCisgICAg
ICAgICAgICAiJHQ2IgorICAgICAgICB3aGVuICJ0NyIKKyAgICAgICAgICAgICIkdDciCisgICAg
ICAgIHdoZW4gInQ4IgorICAgICAgICAgICAgIiR0OCIKKyAgICAgICAgd2hlbiAiY2ZyIgorICAg
ICAgICAgICAgIiRzMCIKKyAgICAgICAgd2hlbiAibHIiCisgICAgICAgICAgICAiJHJhIgorICAg
ICAgICB3aGVuICJzcCIKKyAgICAgICAgICAgICIkc3AiCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgTUlQUyBhdCAje2NvZGVPcmlnaW5T
dHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQK
KyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdoZW4gImZ0
MCIsICJmciIKKyAgICAgICAgICAgICIkZjAiCisgICAgICAgIHdoZW4gImZ0MSIKKyAgICAgICAg
ICAgICIkZjIiCisgICAgICAgIHdoZW4gImZ0MiIKKyAgICAgICAgICAgICIkZjQiCisgICAgICAg
IHdoZW4gImZ0MyIKKyAgICAgICAgICAgICIkZjYiCisgICAgICAgIHdoZW4gImZ0NCIKKyAgICAg
ICAgICAgICIkZjgiCisgICAgICAgIHdoZW4gImZ0NSIKKyAgICAgICAgICAgICIkZjEwIgorICAg
ICAgICB3aGVuICJmYTAiCisgICAgICAgICAgICAiJGYxMiIKKyAgICAgICAgd2hlbiAiZmExIgor
ICAgICAgICAgICAgIiRmMTQiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJCYWQg
cmVnaXN0ZXIgI3tuYW1lfSBmb3IgTUlQUyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAg
ICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgbWlwc09wZXJh
bmQKKyAgICAgICAgcmFpc2UgIkludmFsaWQgaW1tZWRpYXRlICN7dmFsdWV9IGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iIGlmIHZhbHVlIDwgLTB4N2ZmZiBvciB2YWx1ZSA+IDB4N2ZmZgorICAgICAg
ICAiI3t2YWx1ZX0iCisgICAgZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiBtaXBz
T3BlcmFuZAorICAgICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9
IiBpZiBvZmZzZXQudmFsdWUgPCAtMHg3ZmZmIG9yIG9mZnNldC52YWx1ZSA+IDB4N2ZmZgorICAg
ICAgICAiI3tvZmZzZXQudmFsdWV9KCN7YmFzZS5taXBzT3BlcmFuZH0pIgorICAgIGVuZAorZW5k
CisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBy
YWlzZSAiVW5jb252ZXJ0ZWQgYWJzb2x1dGUgYWRkcmVzcyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9
IgorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXIgJ2FuZCcgbWFza2VkIGJyYW5jaGVzCisjCisK
K2RlZiBsb3dlck1JUFNDb25kQnJhbmNoKGxpc3QsIGNvbmRPcCwgbm9kZSkKKyAgICBpZiBub2Rl
Lm9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRPcCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIFNwZWNpYWxS
ZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbLTFdXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAgIGVsc2lmIG5vZGUub3BlcmFu
ZHMuc2l6ZSA9PSAzCisgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3By
KQorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmRpIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAg
bGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25kT3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbLTFdXSkK
KyAgICBlbHNlCisgICAgICAgIHJhaXNlICJFeHBlY3RlZCAyIG9yIDMgb3BlcmFuZHMgYnV0IGdv
dCAje25vZGUub3BlcmFuZHMuc2l6ZX0gYXQgI3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9IgorICAg
IGVuZAorZW5kCisKKyMKKyMgTG93ZXJpbmcgb2YgYnJhbmNoIG9wcy4gRm9yIGV4YW1wbGU6Cisj
CisjIGJhZGRpeiBmb28sIGJhciwgYmF6CisjCisjIHdpbGwgYmVjb21lOgorIworIyBhZGRpIGZv
bywgYmFyCisjIGJ6IGJhegorIworCitkZWYgbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3BzKGxpc3Qp
CisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAg
ICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9
IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAg
ICAgd2hlbiAvXmIoYWRkaXxzdWJpfG9yaXxhZGRwKS8KKyAgICAgICAgICAgICAgICBvcCA9ICQx
CisgICAgICAgICAgICAgICAgYmMgPSAkfi5wb3N0X21hdGNoCisgICAgICAgICAgICAgICAgYnJh
bmNoID0gImIiICsgYmMKKworICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAg
ICB3aGVuICJhZGRpIiwgImFkZHAiCisgICAgICAgICAgICAgICAgICAgIG9wID0gImFkZGkiCisg
ICAgICAgICAgICAgICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAic3Vi
aSIKKyAgICAgICAgICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAgICAgICAgIG9wID0g
Im9yaSIKKyAgICAgICAgICAgICAgICBlbmQKKworICAgICAgICAgICAgICAgIHplcm8gPSBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkemVybyIpCisgICAgICAgICAgICAgICAgaWYgYmMgPT0gIm8iCisg
ICAgICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiYWRk
aSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGFkZHUgJHMwLCAkczEsICRzMgorICAgICAg
ICAgICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICMgIGJsdCAkdDAsICR6ZXJvLCBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAg
ICAgICAgIyAgeG9yICR0MCwgJHMwLCAkczEKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJs
dCAkdDAsICR6ZXJvLCBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdmVy
ZmxvdzoKKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcobm9kZS5j
b2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9k
ZS5vcGVyYW5kc1sxXSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2Rl
Lm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIs
IFt0bXAsIHplcm8sIG5vRmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2RlLm9w
ZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vZGUub3Bl
cmFuZHNbMl1dKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgIm1vdmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAg
ICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgc3VidSAkczAsICRz
MSwgJHMyCisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAg
ICAgICAgICAgICAgICAgICAgICAgIyAgYmdlICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAg
ICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAg
ICAgICAgICAgIyAgYmx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAg
ICAgICAjIG5vIG92ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAg
ICAgICAgICAgICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJv
IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJu
b2Zsb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJl
ZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9k
ZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAiYmlndGVxIiwgW3RtcCwgemVybywgbm9GbG93UmVmXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
InhvcmkiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0Iiwg
W3RtcCwgemVybywgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vRmxvdworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sx
XV0pCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICMgbm8gb3Z3ZXJmbG93IGF0IG9yaQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1sw
Li4xXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlzX2E/IEFk
ZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIgPSBub2RlLm9wZXJhbmRzWzFdCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3By
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAibG9hZHAiLCBbYWRkciwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCBvcCwgW25vZGUub3BlcmFuZHNbMF0sIHRyXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlcCIsIFt0ciwg
YWRkcl0pCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRyID0gbm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4t
Ml0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwg
W3RyLCB6ZXJvLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAg
ICAgICAgICB3aGVuICJiaWEiLCAiYnBhIiwgImJiYSIKKyAgICAgICAgICAgICAgICB0bXAgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9k
ZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBu
b2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdXSwgYW5ub3RhdGlvbikKKyAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJibnoi
LCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkK
KyAgICAgICAgICAgIHdoZW4gImJpYWVxIiwgImJwYWVxIiwgImJiYWVxIgorICAgICAgICAgICAg
ICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAg
IGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNv
bXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBhbm5vdGF0aW9u
KQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVy
YW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJiaWIiLCAiYnBiIiwgImJiYiIKKyAgICAgICAg
ICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAg
ICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdXSwgYW5ub3Rh
dGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2Rl
Lm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYmVxIiwgImJwYmVxIiwgImJiYmVx
IgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIg
OiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNb
MF1dLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHpl
cm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoi
LCAiYnRieiIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJi
eiIsIG5vZGUpCisgICAgICAgICAgICB3aGVuICJidGlueiIsICJidHBueiIsICJidGJueiIKKyAg
ICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJibnoiLCBub2RlKQor
ICAgICAgICAgICAgd2hlbiAiYnRpbyIsICJidHBvIiwgImJ0Ym8iCisgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICB3aGVuICJidGlzIiwgImJ0cHMiLCAiYnRicyIK
KyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJicyIsIG5vZGUp
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisg
ICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBTcGVjaWFsaXphdGlv
biBvZiBsb3dlcmluZyBvZiBtYWxmb3JtZWQgQmFzZUluZGV4IGFkZHJlc3Nlcy4KKyMKKworY2xh
c3MgQmFzZUluZGV4CisgICAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc1JlY3Vyc2Uo
bGlzdCwgbm9kZSwgJmJsb2NrKQorICAgICAgICBpZiBzY2FsZVNoaWZ0ID09IDAKKyAgICAgICAg
ICAgIHRtcDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFtiYXNlLCBpbmRleCwgdG1wMF0p
CisgICAgICAgICAgICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3
KGNvZGVPcmlnaW4sIG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
bXAwID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgbGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxzaGlmdGkiLCBbaW5kZXgsIEltbWVkaWF0ZS5uZXco
Y29kZU9yaWdpbiwgc2NhbGVTaGlmdCksIHRtcDBdKTsKKyAgICAgICAgICAgIGxpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIHRtcDBdKQorICAgICAgICAg
ICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2lu
LCBvZmZzZXQudmFsdWUpKTsKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworIworIyBMb3dl
cmluZyBvZiBtaXNwbGFjZWQgaW1tZWRpYXRlcyBvZiBNSVBTIHNwZWNpZmljIGluc3RydWN0aW9u
cy4gRm9yIGV4YW1wbGU6CisjCisjIHNsdHUgcmVnLCA0LCAyCisjCisjIHdpbGwgYmVjb21lOgor
IworIyBtb3ZlIDQsIHRtcAorIyBzbHR1IHJlZywgdG1wLCAyCisjCisKK2RlZiBtaXBzTG93ZXJN
aXNwbGFjZWRJbW1lZGlhdGVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNo
IHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgor
ICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAic2x0IiwgInNs
dHUiLCAic2x0YiIsICJzbHR1YiIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFd
LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzFdLCB0bXBd
LCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCB0bXAsIG5v
ZGUub3BlcmFuZHNbMl1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5k
CisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxpemF0aW9uIG9mIGxvd2Vy
aW5nIG9mIG1pc3BsYWNlZCBhZGRyZXNzZXMuCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRB
ZGRyZXNzZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7
CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAg
ICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9
IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAg
ICAgd2hlbiAiam1wIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uYWRkcmVz
cz8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHJhIikK
KyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVy
YW5kc1swXS5jb2RlT3JpZ2luLCAibG9hZGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCBub2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmlzY0Fz
UmVnaXN0ZXIobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5vcGVyYW5kc1swXSwgInAi
LCBmYWxzZSldKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAiY2FsbCIK
KyAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFNwZWNp
YWxSZWdpc3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRwIiwgW25vZGUu
b3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7
CisgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJlbFJlZmVy
ZW5jZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRzWzBdCisgICAgICAg
ICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzaWYgbm9k
ZS5vcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lh
bFJlZ2lzdGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9w
ZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gbm9kZS5vcGVy
YW5kc1swXQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFt0bXBdKQorICAg
ICAgICAgICAgICAgIGlmIHJlc3RvcmVHUAorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRzNCIpLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkZ3AiKV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICB3aGVuICJzbHQiLCAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAi
aSIpKQorICAgICAgICAgICAgd2hlbiAic2x0dWIiLCAic2x0YiIKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtd
LCBub2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAiYnoiLCAiYm56IiwgImJz
IiwgImJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
b2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
aXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMsICJpIikpCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9ucworICAgICAgICBlbHNl
CisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5l
d0xpc3QKK2VuZAorCisjCisjIExvd2VyaW5nIGNvbXBhcmVzIGFuZCB0ZXN0cy4KKyMKKworZGVm
IG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShsaXN0LCBub2RlLCBvcENtcCwgb3BNb3YpCisgICAg
dG1wMCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgIHRtcDEgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAwKSwgbm9kZS5vcGVyYW5k
c1syXV0pCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcENt
cCwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcDBdKQorICAgIGxpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5l
dyhuaWwsIDEpLCB0bXAxXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG9wTW92LCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMF0pCitlbmQKKworZGVm
IG1pcHNMb3dlckNvbXBhcmVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNo
IHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgor
ICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiY2llcSIsICJj
cGVxIiwgImNiZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5l
d0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAiY2luZXEiLCAi
Y3BuZXEiLCAiY2JuZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRl
KG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGl6Iiwg
InRieiIsICJ0cHoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5l
d0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAidGlueiIsICJ0
Ym56IiwgInRwbnoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5l
d0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGlvIiwgInRi
byIsICJ0cG8iCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBd
KQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIp
LCB0bXBdKQorICAgICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCisgICAgICAgICAg
ICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAg
ICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2Rl
Lm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJh
bmRzWzJdLCB0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIildKQorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAg
ICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTGVhIHN1cHBvcnQuCisjCisKK2NsYXNzIEFk
ZHJlc3MKKyAgICBkZWYgbWlwc0VtaXRMZWEoZGVzdGluYXRpb24pCisgICAgICAgIGlmIGRlc3Rp
bmF0aW9uID09IGJhc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlv
bi5taXBzT3BlcmFuZH0sICN7b2Zmc2V0LnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgJGFzbS5wdXRzICJhZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tiYXNlLm1p
cHNPcGVyYW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAor
CisjCisjIEFkZCBQSUMgY29tcGF0aWJsZSBoZWFkZXIgY29kZSB0byBwcm9sb2d1ZS9lbnRyeSBy
dXRpbnMuCisjCisKK2RlZiBtaXBzQWRkUElDQ29kZShsaXN0KQorICAgIG15TGlzdCA9IFtdCisg
ICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgbXlMaXN0IDw8IG5vZGUK
KyAgICAgICAgaWYgbm9kZS5pc19hPyBMYWJlbAorICAgICAgICAgICAgaWYgL19wcm9sb2d1ZSQv
Lm1hdGNoKG5vZGUubmFtZSkgfHwgL15fbGxpbnRfZnVuY3Rpb25fLy5tYXRjaChub2RlLm5hbWUp
CisgICAgICAgICAgICAgICAgIyBGdW5jdGlvbnMgY2FsbGVkIGZyb20gdHJhbXBvbGluZS9KSVQg
Y29kZXMuCisgICAgICAgICAgICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJwaWNoZHIiLCBbXSkKKyAgICAgICAgICAgIGVsc2lmIC9fbGxpbnRfb3BfY2F0
Y2gvLm1hdGNoKG5vZGUubmFtZSkKKyAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbiBjYWN0Y2hl
ciBlbnRyeSBwb2ludCBmdW5jdGlvbi4KKyAgICAgICAgICAgICAgICBteUxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInBpY2hkcnJhIiwgW10pCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgZW5kCisgICAgfQorICAgIG15TGlzdAorZW5kCisKKyMKKyMgQWN0dWFsIGxv
d2VyaW5nIGNvZGUgZm9sbG93cy4KKyMKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9k
aWZpZWRMaXN0TUlQUworICAgICAgICByZXN1bHQgPSBAbGlzdAorCisgICAgICAgICMgVmVyaWZ5
IHRoYXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KKyAgICAgICAg
cmVzdWx0LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIHVubGVzcyBu
b2RlLmlzX2E/IEluc3RydWN0aW9uIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8g
TGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisg
ICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAgIHJhaXNl
ICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1pcHNBZGRQSUNDb2Rl
KHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3BzKHJlc3Vs
dCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VySGFyZEJyYW5jaE9wcyhyZXN1bHQpCisgICAg
ICAgIHJlc3VsdCA9IHJpc2NMb3dlclNoaWZ0T3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0g
cmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgeworICAgICAgICAgICAgfCBub2Rl
LCBhZGRyZXNzIHwKKyAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAg
ICAgICAgICAgICgtMHhmZmZmLi4weGZmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVl
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB9CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nl
c0RvdWJsZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVk
aWF0ZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBtaXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlh
dGVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRl
cyhyZXN1bHQsIC0weGZmZmYuLjB4ZmZmZikKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlz
cGxhY2VkQWRkcmVzc2VzQ29tbW9uKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2Vy
TWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNj
TG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyQ29t
cGFyZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFy
aWVzKHJlc3VsdCwgOmdwciwgTUlQU19URU1QX0dQUlMpCisgICAgICAgIHJlc3VsdCA9IGFzc2ln
blJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBNSVBTX1RFTVBfRlBSUykKKwor
ICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgZW5kCitlbmQKKworZGVmIG1pcHNPcGVyYW5kcyhv
cGVyYW5kcykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYubWlwc09wZXJhbmR9LmpvaW4oIiwgIikK
K2VuZAorCitkZWYgbWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBtaXBzT3BlcmFu
ZHMoW29wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tMl0pCitlbmQKKworZGVmIGdldE1JUFNP
cGNvZGUob3Bjb2RlLCBzdWZmaXgpCisKK2VuZAorCitkZWYgZW1pdE1JUFNDb21wYWN0KG9wY29k
ZSwgb3Bjb2RlaSwgb3BlcmFuZHMpCisgICAgcG9zdGZpeCA9ICIiCisgICAgaWYgb3Bjb2RlID09
ICJzdWIiCisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAg
ICAgb3Bjb2RlID0gImFkZCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdID0gSW1tZWRpYXRlLm5l
dyhvcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAtMSAqIG9wZXJhbmRzWzBdLnZhbHVlKQorICAgICAg
ICBlbHNpZiBvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9
ICJhZGQiCisgICAgICAgICAgICBvcGVyYW5kc1sxXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNb
MV0uY29kZU9yaWdpbiwgLTEgKiBvcGVyYW5kc1sxXS52YWx1ZSkKKyAgICAgICAgZW5kCisgICAg
ICAgIHBvc3RmaXggPSAidSIKKyAgICBlbHNpZiBvcGNvZGUgPT0gImFkZCIKKyAgICAgICAgcG9z
dGZpeCA9ICJ1IgorICAgIGVuZAorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICBp
ZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tv
cGNvZGV9aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgZWxzaWYgb3Bl
cmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
fWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAje21pcHNGbGlwcGVkT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlzZSB1bmxlc3Mg
b3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdp
c3Rlcj8KKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9I3twb3N0
Zml4fSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2Vu
ZAorCitkZWYgZW1pdE1JUFNTaGlmdENvbXBhY3Qob3Bjb2RlLCBvcGVyYW5kcykKKyAgICBpZiBv
cGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgaWYgKG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0
ZSkKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0i
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9diAje21pcHNG
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAg
ICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGlmIG9wZXJhbmRzWzBd
LnJlZ2lzdGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX12ICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5taXBzT3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tv
cGNvZGV9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisK
K2RlZiBlbWl0TUlQUyhvcGNvZGUsIG9wZXJhbmRzKQorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0g
MworICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICBlbHNlCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09
IDIKKyAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSIKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFNEb3VibGVCcmFuY2goYnJhbmNoT3Bjb2Rl
LCBuZWcsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAiYy4je2JyYW5jaE9wY29kZX0uZCAje21p
cHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgIGlmICghbmVnKQorICAgICAgICAkYXNt
LnB1dHMgImJjMXQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZWxzZQorICAgICAgICAk
YXNtLnB1dHMgImJjMWYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgbG93ZXJNSVBTCisgICAgICAgICRhc20uY29tbWVu
dCBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAgIGNhc2Ugb3Bjb2RlCisgICAgICAgIHdoZW4gImFk
ZGkiLCAiYWRkcCIsICJhZGRpcyIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBh
bmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgcmFpc2UgdW5s
ZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBv
cGVyYW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS52YWx1
ZSA9PSAwICNhbmQgc3VmZml4LmVtcHR5PworICAgICAgICAgICAgICAgICAgICB1bmxlc3Mgb3Bl
cmFuZHNbMV0gPT0gb3BlcmFuZHNbMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0
cyAibW92ZSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3Bl
cmFuZH0iCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzJdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHMuc2l6
ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNz
IG9wZXJhbmRzWzJdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAj
e21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAg
ICAgICAgdW5sZXNzIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXQorICAgICAg
ICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJhZGR1ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgorICAgICAgICAg
ICAgZW1pdE1JUFNDb21wYWN0KCJhbmQiLCAiYW5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
Im9yaSIsICJvcnAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoIm9yIiwgIm9yciIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJvcmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0
KCJvciIsICJvcnJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInhvcmkiLCAieG9ycCIKKyAg
ICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgieG9yIiwgImVvciIsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJsc2hpZnRpIiwgImxzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29t
cGFjdCgic2xsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInJzaGlmdGkiLCAicnNoaWZ0cCIK
KyAgICAgICAgICAgIGVtaXRNSVBTU2hpZnRDb21wYWN0KCJzcmEiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAidXJzaGlmdGkiLCAidXJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0
Q29tcGFjdCgic3JsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKKyAg
ICAgICAgICAgIGVtaXRNSVBTKCJtdWwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3ViaSIs
ICJzdWJwIiwgInN1YmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJzdWIiLCAic3Vi
cyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3AiCisgICAgICAgICAgICAk
YXNtLnB1dHMgIm5lZ3UgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
bWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJub3RpIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJub3IgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9LCAkemVybyIKKyAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRwIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJsdyAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
c3cgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGIiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxidSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAibG9hZGJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYiAje21pcHNG
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmViIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJzYiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3
aGVuICJsb2FkaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGh1ICN7bWlwc0ZsaXBwZWRPcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkaHMiCisgICAgICAgICAgICAkYXNt
LnB1dHMgImxoICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVu
ICJzdG9yZWgiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNodiAje21pcHNPcGVyYW5kcyhvcGVy
YW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRj
MSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVk
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzZGMxICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gImFkZGQiCisgICAgICAgICAgICBlbWl0TUlQUygiYWRkLmQiLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAiZGl2ZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJkaXYuZCIs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzdWJkIgorICAgICAgICAgICAgZW1pdE1JUFMoInN1
Yi5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGQiCisgICAgICAgICAgICBlbWl0TUlQ
UygibXVsLmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3FydGQiCisgICAgICAgICAgICAk
YXNtLnB1dHMgInNxcnQuZCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAg
ICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgIHJhaXNlICJpbnZhbGlkIG9wcyBvZiAje3NlbGYu
aW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzWzFdLmlzX2E/
IEZQUmVnaXN0ZXJJRCBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAkYXNt
LnB1dHMgIm10YzEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7b3BlcmFuZHNbMV0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAi
YmRlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVy
YW5kcykKKyAgICAgICAgd2hlbiAiYmRuZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJy
YW5jaCgidWVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3QiCisgICAgICAg
ICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWxlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gImJkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bHQiLCB0
cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdCIKKyAgICAgICAgICAgIGVtaXRNSVBT
RG91YmxlQnJhbmNoKCJvbHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRl
cSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbGUiLCBmYWxzZSwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gImJkZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJh
bmNoKCJ1ZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxdW4iCisgICAg
ICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYmRndHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9sZSIs
IHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXF1biIKKyAgICAgICAgICAgIGVt
aXRNSVBTRG91YmxlQnJhbmNoKCJvbHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
YmRsdHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsdCIsIGZhbHNlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0Rv
dWJsZUJyYW5jaCgidWxlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJidGQyaSIK
KyAgICAgICAgICAgICMgRklYTUU6IG1heSBiZSBhIGdvb2QgaWRlYSB0byBqdXN0IGdldCByaWQg
b2YgdGhpcyBpbnN0cnVjdGlvbiwgc2luY2UgdGhlIGludGVycHJldGVyCisgICAgICAgICAgICAj
IGN1cnJlbnRseSBkb2VzIG5vdCB1c2UgaXQuCisgICAgICAgICAgICByYWlzZSAiTUlQUyBkb2Vz
IG5vdCBzdXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIKKyAgICAgICAgd2hl
biAidGQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRDSF9G
UFIubWlwc1NpbmdsZUxvfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JB
VENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSwgI3tv
cGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tv
cGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7TUlQU19TQ1JBVENIX0ZQUi5taXBz
T3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAg
ZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwgdHJ1ZSwgW01JUFNfU0NSQVRDSF9GUFIsIG9wZXJh
bmRzWzBdLCBvcGVyYW5kc1syXV0pCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgJHplcm8sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAg
ICAgICB3aGVuICJtb3ZkeiIKKyAgICAgICAgICAgICMgRklYTUU6IGVpdGhlciBzdXBwb3J0IHRo
aXMgb3IgcmVtb3ZlIGl0LgorICAgICAgICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9y
dCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInBvcCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sIDAoJHNw
KSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgJHNwLCAkc3AsIDQiCisgICAgICAgIHdo
ZW4gInB1c2giCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRzcCwgJHNwLCAtNCIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAic3cgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sIDAoJHNw
KSIKKyAgICAgICAgd2hlbiAibW92ZSIsICJzeGkycCIsICJ6eGkycCIKKyAgICAgICAgICAgIGlm
IG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIG1pcHNNb3ZlSW1t
ZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9w
ZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibm9wIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0p
fSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbmVxIiwgImJwbmVx
IiwgImJibmVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJibmUgI3ttaXBzT3BlcmFuZHMob3Bl
cmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJp
Z3QiLCAiYnBndCIsICJiYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3ttaXBzT3Bl
cmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAg
IHdoZW4gImJpZ3RlcSIsICJicGd0ZXEiLCAiYmJndGVxIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJiZ2UgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgICAgIHdoZW4gImJpbHQiLCAiYnBsdCIsICJiYmx0IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJibHQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5k
c1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbHRlcSIsICJicGx0ZXEiLCAiYmJsdGVx
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJibGUgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4u
MV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImptcCIKKyAgICAg
ICAgICAgIGlmIG9wZXJhbmRzWzBdLmxhYmVsPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
aiAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImpyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAg
ICAgZW5kCisgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5s
YWJlbD8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImphbCAje29wZXJhbmRzWzBdLmFzbUxh
YmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImphbHIg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hl
biAiYnJlYWsiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJyZWFrIgorICAgICAgICB3aGVuICJy
ZXQiCisgICAgICAgICAgICAkYXNtLnB1dHMgImpyICRyYSIKKyAgICAgICAgd2hlbiAiY2lhIiwg
ImNwYSIsICJjYmEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lhZXEiLCAiY3BhZXEiLCAiY2JhZXEiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAg
ICAgICAgd2hlbiAiY2liIiwgImNwYiIsICJjYmIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNs
dHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2liZXEiLCAiY3Bi
ZXEiLCAiY2JiZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1p
cHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAiY2lndCIsICJjcGd0IiwgImNiZ3QiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAg
ICB3aGVuICJjaWd0ZXEiLCAiY3BndGVxIiwgImNiZ3RlcSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpbHQi
LCAiY3BsdCIsICJjYmx0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAx
IgorICAgICAgICB3aGVuICJwZWVrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9KCRzcCkiCisgICAg
ICAgIHdoZW4gInBva2UiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNbMV0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlICogNH0oJHNwKSIKKyAgICAgICAgd2hl
biAiZmlpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAibXRjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBz
U2luZ2xlSGl9IgorICAgICAgICB3aGVuICJmZDJpaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
bWZjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzU2luZ2xl
TG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMl0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzBdLm1pcHNTaW5nbGVIaX0iCisgICAgICAgIHdoZW4gImJvIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAg
d2hlbiAiYnMiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJsdCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgICAgICB3aGVuICJieiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7b3Bl
cmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJueiIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiYm5lICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImxlYWkiLCAi
bGVhcCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdLm1pcHNFbWl0TGVhKG9wZXJhbmRzWzFdKQor
ICAgICAgICB3aGVuICJzbXVsbGkiCisgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9m
IGFyZ3VtZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIgdW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0CisgICAgICAgICAgICAkYXNtLnB1dHMg
Im11bHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmxvICN7b3BlcmFuZHNbMl0ubWlwc09wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmhpICN7b3BlcmFuZHNbM10ubWlwc09wZXJh
bmR9IgorICAgICAgICB3aGVuICJtb3Z6IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z6ICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm1vdm4iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdm4gI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hl
biAic2x0IiwgInNsdGIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0u
bWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJzbHR1IiwgInNsdHViIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4g
InBpY2hkciIKKyAgICAgICAgICAgICRhc20ucHV0U3RyKCJPRkZMSU5FX0FTTV9DUExPQUQoJDI1
KSIpCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgJHM0LCAkZ3AiCisgICAgICAgIHdoZW4g
InBpY2hkcnJhIgorICAgICAgICAgICAgJGFzbS5wdXRTdHIoIk9GRkxJTkVfQVNNX0NQTE9BRCgk
MzEpIikKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAkczQsICRncCIKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcmFpc2UgIlVuaGFuZGxlZCBvcGNvZGUgI3tvcGNvZGV9IGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCA0NGI0ZGJkLi40OTFhM2NjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTYzLDEwICs2Myw2IEBAIGRl
ZiByaXNjTG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9w
LCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW25vZGUub3Bl
cmFuZHNbLTFdXSkKLSAgICAgICAgICAgIHdoZW4gJ2JtdWxpcycsICdibXVseicsICdibXVsbnon
Ci0gICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAotICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBu
b2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKLSAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBb
bm9kZS5vcGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVuZApAQCAtOTMs
MTIgKzg5LDIyIEBAIGRlZiByaXNjTG93ZXJIYXJkQnJhbmNoT3BzKGxpc3QpCiAgICAgbmV3TGlz
dCA9IFtdCiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKLSAgICAgICAgaWYgbm9k
ZS5pc19hPyBJbnN0cnVjdGlvbiBhbmQgbm9kZS5vcGNvZGUgPT0gImJtdWxpbyIKLSAgICAgICAg
ICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIHRt
cDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtub2RlLm9wZXJh
bmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAxXSwgbm9kZS5h
bm5vdGF0aW9uKQotICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0pCi0gICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9w
ZXJhbmRzWy0xXV0pCisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAg
ICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5v
cGNvZGUKKyAgICAgICAgICAgIHdoZW4gICJibXVsaW8iCisgICAgICAgICAgICAgICAgdG1wMSA9
IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIHRtcDIgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5k
c1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5u
b3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1lZGlhdGUubmV3
KG5vZGUuY29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBu
b2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3aGVuIC9eYm11bGkvCisgICAgICAgICAg
ICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9wZXJhbmRz
WzAuLi0yXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5vcGVyYW5k
c1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgZW5kCkBAIC00NDcsNyArNDUzLDcgQEAg
ZGVmIHJpc2NBc1JlZ2lzdGVycyhwcmVMaXN0LCBwb3N0TGlzdCwgb3BlcmFuZHMsIHN1ZmZpeCkK
ICAgICBuZXdPcGVyYW5kcwogZW5kCiAKLWRlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMo
bGlzdCkKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24obGlzdCkKICAgICBu
ZXdMaXN0ID0gW10KICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfApAQCAtNDgzLDYg
KzQ4OSwyNSBAQCBkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xp
c3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJkIiksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbikKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAor
ZW5kCisKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhsaXN0KQorICAg
IG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAg
IGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMg
PSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAg
ICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAiam1wIiwgImNhbGwiCiAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCBmNjM2ZmZjLi41ZDFjMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTExLTE0ICBC
YWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBM
TEludCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0xMS0xNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bQVJNXSBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJN
djcoVGh1bWIyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggYjA3ZWZiNS4uNmUxOGY2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CkBAIC05MjUsNyArOTI1LDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERB
UldJTikgfHwgT1MoTElOVVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShHVEspIHx8IChQTEFURk9STShRVCkgJiYgT1MoTElOVVgpKSkgXAot
ICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikpCisgICAg
JiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQ
UykpCiAjZGVmaW5lIEVOQUJMRV9MTElOVCAxCiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176290</attachid>
            <date>2012-11-27 09:56:52 -0800</date>
            <delta_ts>2012-12-17 09:20:24 -0800</delta_ts>
            <desc>LLInt implementation for MIPS using risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57687</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVlNmQzYjUuLjgxNzljYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTI3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRo
dW5rcyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJi
OiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6CisKIDIwMTItMTEtMjYgIERh
bmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFN1YnN0aXR1dGUgImFs
bFNlcGFyYXRvcnM4Qml0IiBmb3IgImFsbFNlcGVyYXRvcnM4Qml0IiBpbiBKU0M6OmpzU3BsaWNl
U3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IDRmODFiNDUuLjQ0Zjk0Y2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaApAQCAtMTMwNCw3ICsxMzA0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBqdW1w
KFJlZ2lzdGVySUQgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuanIodGFyZ2V0
KTsKKyAgICAgICAgbW92ZSh0YXJnZXQsIE1JUFNSZWdpc3RlcnM6OnQ5KTsKKyAgICAgICAgbV9h
c3NlbWJsZXIuanIoTUlQU1JlZ2lzdGVyczo6dDkpOwogICAgICAgICBtX2Fzc2VtYmxlci5ub3Ao
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CmluZGV4IDkwOWM2NTcuLmU5YzViYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcApAQCAtNDcsNiArNDcsMTggQEAKIAogI2lmIEVOQUJMRShKSVQpCiAK
KyNpZiBDUFUoTUlQUykKKyNpZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgTE9BRF9GVU5DVElPTl9U
T19UOShmdW5jdGlvbikgXAorICAgICAgICAiLnNldCBub3Jlb3JkZXIiICJcbiIgXAorICAgICAg
ICAiLmNwbG9hZCAkMjUiICJcbiIgXAorICAgICAgICAiLnNldCByZW9yZGVyIiAiXG4iIFwKKyAg
ICAgICAgImxhICR0OSwgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJcbiIKKyNlbHNlCisj
ZGVmaW5lIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24pICIiICJcbiIKKyNlbmRpZgorI2Vu
ZGlmCisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2lmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4
Nl82NCkKQEAgLTIwMSw2ICsyMTMsNTIgQEAKICAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0Uo
ZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCiAgICAgKTsKIAorI2VsaWYgQ09N
UElMRVIoR0NDKSAmJiBDUFUoTUlQUykKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhf
UkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxu
IiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJ
REVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAi
OiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFk
ZHJlc3MpIFwKKyAgICAgICAgIm1vdmUgJGExLCAkcmEiICJcbiIgXAorICAgICAgICAiYiAiIExP
Q0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICAp
OworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FQ0koZnVu
Y3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikg
IlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURf
RlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJt
b3ZlICRhMywgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rp
b24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElP
Tl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBc
CisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlv
bikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9T
VFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0
aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAic3cgJHJhLCAyMCgkc3ApIiAiXG4i
IFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRk
cmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVU
VVJOX0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxu
IiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJ
REVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAi
OiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFk
ZHJlc3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjQoJHNwKSIgIlxuIiBcCisgICAgICAgICJiICIg
TE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAg
ICk7CisKICNlbmRpZgogCiAjZGVmaW5lIFBfRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9B
RERSRVNTX0UoZnVuY3Rpb24pIFwKQEAgLTE2MDUsNiArMTY2MywxNyBAQCBTWU1CT0xfU1RSSU5H
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiAgICAgIm1vdiByMCwgcjUiICJcbiIK
ICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZSkgIlxuIgogKTsKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKE1JUFMpCithc20oCisi
LnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJP
TF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICBMT0FEX0ZVTkNU
SU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQorICAgICJsdyAk
czAsIC00MCgkczApIiAiXG4iCisgICAgIm1vdmUgJGEwLCAkczAiICJcbiIKKyAgICAiYiAiIExP
Q0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgor
KTsKICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5f
VkFMVUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0
ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggNzYwZmZk
NC4uNTFkMzU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTI4
MCwxMSArMjgwLDEzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VU
ICAgICAgICAgNjQKICNkZWZpbmUgUFJFU0VSVkVEX1MxX09GRlNFVCAgICAgICAgIDY4CiAjZGVm
aW5lIFBSRVNFUlZFRF9TMl9PRkZTRVQgICAgICAgICA3MgotI2RlZmluZSBQUkVTRVJWRURfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUIDc2Ci0jZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNF
VCA4MAotI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgODQKLSNkZWZpbmUgR0xP
QkFMX0RBVEFfT0ZGU0VUICAgICAgICAgMTAwCi0jZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAg
ICAgICAgIDEwNAorI2RlZmluZSBQUkVTRVJWRURfUzNfT0ZGU0VUICAgICAgICAgNzYKKyNkZWZp
bmUgUFJFU0VSVkVEX1M0X09GRlNFVCAgICAgICAgIDgwCisjZGVmaW5lIFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQgODQKKyNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VU
IDg4CisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA5MgorI2RlZmluZSBHTE9C
QUxfREFUQV9PRkZTRVQgICAgICAgICAxMDgKKyNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAg
ICAgICAgMTEyCiAjZWxpZiBDUFUoU0g0KQogI2RlZmluZSBTWU1CT0xfU1RSSU5HKG5hbWUpICNu
YW1lCiAvKiBjb2RlIChyNCksIEpTU3RhY2sqIChyNSksIENhbGxGcmFtZSogKHI2KSwgdm9pZCog
dW51c2VkMSAocjcpLCB2b2lkKiB1bnVzZWQyKHNwKSwgSlNHbG9iYWxEYXRhIChzcCkqLwpAQCAt
MzE4LDYgKzMyMCw5IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAg
ICAiYWRkICMxMiwgcjE1IiAiXG4iCiAgICAgInJ0cyIgIlxuIgogICAgICJub3AiICJcbiIKKyIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9M
KGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkg
IjoiICJcbiIKICk7CiAKIGFzbSB2b2xhdGlsZSAoCkBAIC00NTEsNiArNDU2LDggQEAgYXNtICgK
IFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAiYWRkaXUgJDI5LCQy
OSwtIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAgICAgInN3ICAgICQz
MSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKKyAgICAic3cgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZF
RF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMTksIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxOCwi
IFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAg
ICAic3cgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIo
JDI5KSIgIlxuIgogICAgICJzdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVE
X1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCkBAIC00NjcsMTIgKzQ3NCwxNyBAQCBTWU1CT0xfU1RS
SU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgog
ICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogIi5zZXQgcmVvcmRlciIgIlxuIgog
Ii5zZXQgbWFjcm8iICJcbiIKICIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAi
XG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURF
X1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xp
bmVFbmQpICI6IiAiXG4iCiApOwogCiBhc20gKApAQCAtNDg1LDggKzQ5Nyw4IEBAIGFzbSAoCiAi
LmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKIFNZTUJPTF9T
VFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAjaWYgV1RGX01JUFNfUElDCi0g
ICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfR1BfT0ZGU0VUKSAi
KCQyOSkiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCisiLmNwbG9hZCAkMzEiICJcbiIKICAgICAi
bGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKICIuc2V0IG5vbWFj
cm8iICJcbiIKICAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJcbiIKQEAg
LTQ5OCw2ICs1MTAsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIg
IlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MwX09G
RlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAg
ICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZG
U0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAgICAk
MzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19M
RU5HVEgpICJcbiIKQEAgLTUxOCw2ICs1MzIsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dO
b3RDYXVnaHQpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAg
ICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAi
XG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZG
U0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEsIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4i
CiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtODE1LDYgKzgzMSw4IEBAIEpJVFRodW5rczo6
SklUVGh1bmtzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMCkgPT0gUFJFU0VSVkVEX1Mw
X09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzEpID09IFBSRVNFUlZFRF9TMV9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMyKSA9PSBQUkVTRVJW
RURfUzJfT0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRTMykgPT0gUFJFU0VSVkVEX1MzX09GRlNFVCk7CisgICAgQVNTRVJU
KE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzQpID09IFBS
RVNFUlZFRF9TNF9PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJ
VFN0YWNrRnJhbWUsIHByZXNlcnZlZFJldHVybkFkZHJlc3MpID09IFBSRVNFUlZFRF9SRVRVUk5f
QUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0
YWNrRnJhbWUsIHRodW5rUmV0dXJuQWRkcmVzcykgPT0gVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBz
dGFjaykgPT0gUkVHSVNURVJfRklMRV9PRkZTRVQpOwpAQCAtMTEwOCw5ICsxMTI2LDkgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFQgdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKEpJVFN0
YWNrRnJhbWUmIGppdFN0YWNrRnIKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3Rp
XyMjb3ApICJcbiIgXAogICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3ApICJc
biIgXAogICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxuIiBcCi0gICAgICAg
ICJsdyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigk
MjkpIiAiXG4iIFwKLSAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVO
S19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICIuc2V0IG1h
Y3JvIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAgInN3ICAg
ICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIo
JDI5KSIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJU
aHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNldCBub21hY3JvIiAiXG4iIFwKICAgICAg
ICAgIi5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRf
IyNvcCkgIlxuIiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKaW5kZXggM2JmMTNi
Yi4uYzM4YjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaApAQCAtMjI4LDYg
KzIyOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMDsKICAg
ICAgICAgdm9pZCogcHJlc2VydmVkUzE7CiAgICAgICAgIHZvaWQqIHByZXNlcnZlZFMyOworICAg
ICAgICB2b2lkKiBwcmVzZXJ2ZWRTMzsKKyAgICAgICAgdm9pZCogcHJlc2VydmVkUzQ7CiAgICAg
ICAgIHZvaWQqIHByZXNlcnZlZFJldHVybkFkZHJlc3M7CiAKICAgICAgICAgUmV0dXJuQWRkcmVz
c1B0ciB0aHVua1JldHVybkFkZHJlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZGEyZDUxMC4uMTU3NTIxMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZp
Zy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25m
aWcuaApAQCAtMzgsNiArMzgsNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12NyAwCiAjZGVm
aW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3cyAwCisj
ZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0NfTE9P
UCkKIApAQCAtNjcsNiArNjgsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNl
bmRpZgogCisjaWYgQ1BVKE1JUFMpCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMQorI2Vsc2UK
KyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCisjZW5kaWYKKwogI2VuZGlmIC8vICFFTkFCTEUo
TExJTlRfQ19MT09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExMSw0ICsxMTgsMTcgQEAK
ICNkZWZpbmUgT0ZGTElORV9BU01fVkFMVUVfUFJPRklMRVIgMAogI2VuZGlmCiAKKyNpZiBDUFUo
TUlQUykKKyNpZmRlZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgUyh4KSAjeAorI2RlZmluZSBTWCh4
KSBTKHgpCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcpIFwKKyAgICAiLnNldCBub3Jl
b3JkZXJcbiIgXAorICAgICIuY3Bsb2FkICIgU1gocmVnKSAiXG4iIFwKKyAgICAiLnNldCByZW9y
ZGVyXG4iCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVnKQorI2VuZGlmCisj
ZW5kaWYKKwogI2VuZGlmIC8vIExMSW50T2ZmbGluZUFzbUNvbmZpZ19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggMDBk
NWM0Zi4uOWRlNDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTgyLDEwICsxODIsOCBAQCBtYWNybyBhc3NlcnQo
YXNzZXJ0aW9uKQogZW5kCiAKIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChk
ZXN0aW5hdGlvblJlZ2lzdGVyKQotICAgIGlmIENfTE9PUAotICAgICAgICAjIEluIG91ciBjYXNl
LCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4gCi0gICAgICAgIG1vdmUg
bHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAgICBlbHNpZiBBUk12NworICAgIGlmIENfTE9PUCBv
ciBBUk12NyBvciBNSVBTCisgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJl
c2VydmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJl
Z2lzdGVyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBwb3AgZGVzdGluYXRpb25S
ZWdpc3RlcgpAQCAtMTk1LDEwICsxOTMsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NB
ZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKIGVuZAogCiBtYWNybyByZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBDX0xPT1AKLSAgICAg
ICAgIyBJbiBvdXIgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4g
Ci0gICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgQVJNdjcKKyAgICBp
ZiBDX0xPT1Agb3IgQVJNdjcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdy
ZSBvbmx5IHJlc3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIHNvdXJjZVJl
Z2lzdGVyLCBscgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAgcHVzaCBzb3VyY2VS
ZWdpc3RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCA4ZDVjZGYxLi45YTE3OTg1YmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCkBAIC0xMTMsNiArMTEzLDEwIEBAIG1hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJn
MSwgYXJnMikKICAgICAgICAgcG9rZSBhcmcxLCAwCiAgICAgICAgIHBva2UgYXJnMiwgMQogICAg
ICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFyZzEsIGEw
CisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lm
IENfTE9PUAogICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBmdW5jdGlvbiwgYXJnMSwgYXJnMgog
ICAgIGVsc2UKQEAgLTEzNCw2ICsxMzgsMTIgQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcx
LCBhcmcyLCBhcmczLCBhcmc0KQogICAgICAgICBwb2tlIGFyZzMsIDIKICAgICAgICAgcG9rZSBh
cmc0LCAzCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICBlbHNpZiBNSVBTCisgICAgICAgIG1v
dmUgYXJnMSwgYTAKKyAgICAgICAgbW92ZSBhcmcyLCBhMQorICAgICAgICBtb3ZlIGFyZzMsIGEy
CisgICAgICAgIG1vdmUgYXJnNCwgYTMKKyAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lm
IENfTE9PUAogICAgICAgICBlcnJvcgogICAgIGVsc2UKQEAgLTE4MTgsNiArMTgyOCwyMCBAQCBt
YWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKICAg
ICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KICAgICAgICAgcmVzdG9y
ZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCiAgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJh
bWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbG9hZHAgSklU
U3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xv
YmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3ZlIHQwLCB0MgorICAgICAgICBw
cmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCisgICAgICAgIHN0b3JlcCB0MywgUmV0
dXJuUENbY2ZyXQorICAgICAgICBtb3ZlIGNmciwgdDAKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsg
UGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1
dGFibGVbdDFdLCB0MQorICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgbW92ZSB0MCwgYTAK
KyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICAgICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGxvYWRwIEpJVFN0YWNr
RnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBsb2Fk
cCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICAgICAgc3RvcmVwIGNmciwg
SlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybXY3LnJiCmluZGV4IDA3OGJlOGMuLmQ3ZDA0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCkBAIC0xNzksNyArMTc5LDggQEAgY2xhc3MgU2Vx
dWVuY2UKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91Ymxl
KHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhy
ZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVz
dWx0LCAwLi4weGZmKQotICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNz
ZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXND
b21tb24ocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNz
ZXNTcGVjaWZpYyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclJlZ2lzdGVyUmV1
c2UocmVzdWx0KQogICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVz
KHJlc3VsdCwgOmdwciwgQVJNdjdfRVhUUkFfR1BSUykKICAgICAgICAgcmVzdWx0ID0gYXNzaWdu
UmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpmcHIsIEFSTXY3X0VYVFJBX0ZQUlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCmluZGV4IDc4ZTU0
NTcuLmVmOTM1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2JhY2tlbmRzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tl
bmRzLnJiCkBAIC0yNSw2ICsyNSw3IEBAIHJlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImFybXY3
IgogcmVxdWlyZSAiYXN0IgogcmVxdWlyZSAieDg2IgorcmVxdWlyZSAibWlwcyIKIHJlcXVpcmUg
ImNsb29wIgogCiBCQUNLRU5EUyA9CkBAIC0zMiw2ICszMyw3IEBAIEJBQ0tFTkRTID0KICAgICAg
Ilg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAorICAgICAiTUlQUyIsCiAgICAg
ICJDX0xPT1AiCiAgICAgXQogCkBAIC00NSw2ICs0Nyw3IEBAIFdPUktJTkdfQkFDS0VORFMgPQog
ICAgICAiWDg2IiwKICAgICAgIlg4Nl82NCIsCiAgICAgICJBUk12NyIsCisgICAgICJNSVBTIiwK
ICAgICAgIkNfTE9PUCIKICAgICBdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2luc3RydWN0aW9ucy5yYgppbmRleCBlMDQ3YjJhLi40ZTcwNjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC0yNjUs
NiArMjY1LDE2IEBAIEFSTXY3X0lOU1RSVUNUSU9OUyA9CiAgICAgICJvcmlzIgogICAgIF0KIAor
TUlQU19JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAibW92eiIsCisgICAgIm1vdm4iLAorICAg
ICJzbHQiLAorICAgICJzbHR1IiwKKyAgICAicGljaGRyIiwKKyAgICAicGljaGRycmEiCisgICAg
XQorCiBDWFhfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJjbG9vcENyYXNoIiwgICAgICAg
ICAgICMgbm8gb3BlcmFuZHMKQEAgLTI4MSw3ICsyOTEsNyBAQCBDWFhfSU5TVFJVQ1RJT05TID0K
ICAgICAgImNsb29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVyYW5kcwogICAgIF0KIAotSU5T
VFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3
X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKK0lOU1RSVUNUSU9OUyA9IE1BQ1JPX0lO
U1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk12N19JTlNUUlVDVElPTlMgKyBNSVBT
X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5TVFJVQ1RJT05fUEFUVEVSTiA9
IFJlZ2V4cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2luKCcpfCgnKSArICcpKVxcWicp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMzQ0MmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCkBAIC0wLDAgKzEsODY4IEBACisjIENv
cHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1JUFMgVEVDSE5PTE9HSUVTLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgTUlQUyBURUNITk9MT0dJRVMsIElO
Qy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCityZXF1aXJlICdy
aXNjJworCitjbGFzcyBBc3NlbWJsZXIKKyAgICBkZWYgcHV0U3RyKHN0cikKKyAgICAgICAgQG91
dHAucHV0cyBzdHIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBOb2RlCisgICAgZGVmIG1pcHNTaW5n
bGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2Ug
IkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJh
bmQgPX4gL15cJGYvCisgICAgICAgICIkZiIgKyAoJH4ucG9zdF9tYXRjaC50b19pICsgMSkudG9f
cworICAgIGVuZAorICAgIGRlZiBtaXBzU2luZ2xlTG8KKyAgICAgICAgZG91YmxlT3BlcmFuZCA9
IG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91Ymxl
T3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eXCRmLworICAgICAgICBkb3VibGVP
cGVyYW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJl
bgorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisgICAgZGVm
IGR1bXAKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiByZWdpc3Rlcj8KKyAgICAg
ICAgdHJ1ZQorICAgIGVuZAorZW5kCisKK01JUFNfVEVNUF9HUFJTID0gW1NwZWNpYWxSZWdpc3Rl
ci5uZXcoIiR0NSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDYiKSwgU3BlY2lhbFJlZ2lzdGVy
Lm5ldygiJHQ3IiksCisgICAgICAgICAgICAgICAgICAgIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0
OCIpXQorTUlQU19URU1QX0ZQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygiJGYxNiIpXQorTUlQ
U19TQ1JBVENIX0ZQUiA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRmMTgiKQorCitkZWYgbWlwc01v
dmVJbW1lZGlhdGUodmFsdWUsIHJlZ2lzdGVyKQorICAgIGlmIHZhbHVlID09IDAKKyAgICAgICAg
JGFzbS5wdXRzICJhZGQgI3tyZWdpc3Rlci5taXBzT3BlcmFuZH0sICR6ZXJvLCAkemVybyIKKyAg
ICBlbHNlCisgICAgICAgICRhc20ucHV0cyAibGkgI3tyZWdpc3Rlci5taXBzT3BlcmFuZH0sICN7
dmFsdWV9IgorICAgIGVuZAorZW5kCisKKworY2xhc3MgUmVnaXN0ZXJJRAorICAgIGRlZiBtaXBz
T3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAiYTAiCisgICAgICAgICAg
ICAiJGEwIgorICAgICAgICB3aGVuICJhMSIKKyAgICAgICAgICAgICIkYTEiCisgICAgICAgIHdo
ZW4gInIwIiwgInQwIgorICAgICAgICAgICAgIiR2MCIKKyAgICAgICAgd2hlbiAicjEiLCAidDEi
CisgICAgICAgICAgICAiJHYxIgorICAgICAgICB3aGVuICJ0MiIKKyAgICAgICAgICAgICIkdDIi
CisgICAgICAgIHdoZW4gInQzIgorICAgICAgICAgICAgIiRzMyIKKyAgICAgICAgd2hlbiAidDQi
ICAgIyBQQyByZWcgaW4gbGxpbnQKKyAgICAgICAgICAgICIkczIiCisgICAgICAgIHdoZW4gInQ1
IgorICAgICAgICAgICAgIiR0NSIKKyAgICAgICAgd2hlbiAidDYiCisgICAgICAgICAgICAiJHQ2
IgorICAgICAgICB3aGVuICJ0NyIKKyAgICAgICAgICAgICIkdDciCisgICAgICAgIHdoZW4gInQ4
IgorICAgICAgICAgICAgIiR0OCIKKyAgICAgICAgd2hlbiAiY2ZyIgorICAgICAgICAgICAgIiRz
MCIKKyAgICAgICAgd2hlbiAibHIiCisgICAgICAgICAgICAiJHJhIgorICAgICAgICB3aGVuICJz
cCIKKyAgICAgICAgICAgICIkc3AiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJC
YWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgTUlQUyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAg
ICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgbWlw
c09wZXJhbmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdoZW4gImZ0MCIsICJmciIKKyAg
ICAgICAgICAgICIkZjAiCisgICAgICAgIHdoZW4gImZ0MSIKKyAgICAgICAgICAgICIkZjIiCisg
ICAgICAgIHdoZW4gImZ0MiIKKyAgICAgICAgICAgICIkZjQiCisgICAgICAgIHdoZW4gImZ0MyIK
KyAgICAgICAgICAgICIkZjYiCisgICAgICAgIHdoZW4gImZ0NCIKKyAgICAgICAgICAgICIkZjgi
CisgICAgICAgIHdoZW4gImZ0NSIKKyAgICAgICAgICAgICIkZjEwIgorICAgICAgICB3aGVuICJm
YTAiCisgICAgICAgICAgICAiJGYxMiIKKyAgICAgICAgd2hlbiAiZmExIgorICAgICAgICAgICAg
IiRmMTQiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tu
YW1lfSBmb3IgTUlQUyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAg
cmFpc2UgIkludmFsaWQgaW1tZWRpYXRlICN7dmFsdWV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IGlmIHZhbHVlIDwgLTB4N2ZmZiBvciB2YWx1ZSA+IDB4N2ZmZgorICAgICAgICAiI3t2YWx1ZX0i
CisgICAgZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiBtaXBzT3BlcmFuZAorICAg
ICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiBvZmZzZXQu
dmFsdWUgPCAtMHg3ZmZmIG9yIG9mZnNldC52YWx1ZSA+IDB4N2ZmZgorICAgICAgICAiI3tvZmZz
ZXQudmFsdWV9KCN7YmFzZS5taXBzT3BlcmFuZH0pIgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFi
c29sdXRlQWRkcmVzcworICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiVW5jb252
ZXJ0ZWQgYWJzb2x1dGUgYWRkcmVzcyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAor
ZW5kCisKKyMKKyMgTG93ZXIgJ2FuZCcgbWFza2VkIGJyYW5jaGVzCisjCisKK2RlZiBsb3dlck1J
UFNDb25kQnJhbmNoKGxpc3QsIGNvbmRPcCwgbm9kZSkKKyAgICBpZiBub2RlLm9wZXJhbmRzLnNp
emUgPT0gMgorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRPcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIFNwZWNpYWxSZWdpc3Rlci5uZXco
IiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbLTFdXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAgIGVsc2lmIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAz
CisgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICBs
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhbmRpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgbGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25kT3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0bXAsIFNwZWNp
YWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICBlbHNlCisg
ICAgICAgIHJhaXNlICJFeHBlY3RlZCAyIG9yIDMgb3BlcmFuZHMgYnV0IGdvdCAje25vZGUub3Bl
cmFuZHMuc2l6ZX0gYXQgI3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorZW5kCisK
KyMKKyMgTG93ZXJpbmcgb2YgYnJhbmNoIG9wcy4gRm9yIGV4YW1wbGU6CisjCisjIGJhZGRpeiBm
b28sIGJhciwgYmF6CisjCisjIHdpbGwgYmVjb21lOgorIworIyBhZGRpIGZvbywgYmFyCisjIGJ6
IGJhegorIworCitkZWYgbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3BzKGxpc3QpCisgICAgbmV3TGlz
dCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9k
ZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3Rh
dGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAvXmIo
YWRkaXxzdWJpfG9yaXxhZGRwKS8KKyAgICAgICAgICAgICAgICBvcCA9ICQxCisgICAgICAgICAg
ICAgICAgYmMgPSAkfi5wb3N0X21hdGNoCisgICAgICAgICAgICAgICAgYnJhbmNoID0gImIiICsg
YmMKKworICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICB3aGVuICJhZGRp
IiwgImFkZHAiCisgICAgICAgICAgICAgICAgICAgIG9wID0gImFkZGkiCisgICAgICAgICAgICAg
ICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAic3ViaSIKKyAgICAgICAg
ICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAgICAgICAgIG9wID0gIm9yaSIKKyAgICAg
ICAgICAgICAgICBlbmQKKworICAgICAgICAgICAgICAgIHplcm8gPSBTcGVjaWFsUmVnaXN0ZXIu
bmV3KCIkemVybyIpCisgICAgICAgICAgICAgICAgaWYgYmMgPT0gIm8iCisgICAgICAgICAgICAg
ICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICMgIGFkZHUgJHMwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAg
ICAgICAgIyAgeG9yICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJs
dCAkdDAsICR6ZXJvLCBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9y
ICR0MCwgJHMwLCAkczEKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJv
LCBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdmVyZmxvdzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5l
dyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
RmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBu
b0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sx
XSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRzWzBd
LCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8s
IG5vRmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2RlLm9wZXJhbmRzWzBdLCB0
bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vZGUub3BlcmFuZHNbMl1dKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1v
dmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICB3aGVuICJz
dWJpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgc3VidSAkczAsICRzMSwgJHMyCisgICAg
ICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAgICAgICAg
ICAgICAgICAgIyAgYmdlICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAgICAgICAg
ICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAgICAgIyAg
Ymx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG92
ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAg
ICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAg
ICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXco
bm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1sx
XSwgbm9kZS5vcGVyYW5kc1swXSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIs
IFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
YmlndGVxIiwgW3RtcCwgemVybywgbm9GbG93UmVmXSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbdHIs
IG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywg
bm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
RmxvdworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAg
ICAgICAgICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgbm8gb3Z3
ZXJmbG93IGF0IG9yaQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4xXSwgYW5ub3Rh
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlzX2E/IEFkZHJlc3MKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFkZHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAg
ICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAibG9hZHAiLCBbYWRkciwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUu
b3BlcmFuZHNbMF0sIHRyXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlcCIsIFt0ciwgYWRkcl0pCisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gbm9kZS5v
cGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRp
b24pCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW3RyLCB6ZXJvLCBu
b2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVu
ICJiaWEiLCAiYnBhIiwgImJiYSIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwx
XSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRz
WzFdLCBub2RlLm9wZXJhbmRzWzBdXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAg
IHdoZW4gImJpYWVxIiwgImJwYWVxIiwgImJiYWVxIgorICAgICAgICAgICAgICAgIHRtcCA9IFRt
cC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2Rl
Lm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5v
ZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBhbm5vdGF0aW9uKQorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6Iiwg
W3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisg
ICAgICAgICAgICB3aGVuICJiaWIiLCAiYnBiIiwgImJiYiIKKyAgICAgICAgICAgICAgICB0bXAg
PSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0g
bm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1w
LCBub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdXSwgYW5ub3RhdGlvbikKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJi
bnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJd
XSkKKyAgICAgICAgICAgIHdoZW4gImJpYmVxIiwgImJwYmVxIiwgImJiYmVxIgorICAgICAgICAg
ICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAg
ICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF1dLCBhbm5vdGF0
aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5v
cGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJidGl6IiwgImJ0cHoiLCAiYnRieiIKKyAg
ICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJieiIsIG5vZGUpCisg
ICAgICAgICAgICB3aGVuICJidGlueiIsICJidHBueiIsICJidGJueiIKKyAgICAgICAgICAgICAg
ICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJibnoiLCBub2RlKQorICAgICAgICAgICAg
d2hlbiAiYnRpbyIsICJidHBvIiwgImJ0Ym8iCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgICAgICB3aGVuICJidGlzIiwgImJ0cHMiLCAiYnRicyIKKyAgICAgICAgICAg
ICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJicyIsIG5vZGUpCisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAor
ICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBTcGVjaWFsaXphdGlvbiBvZiBsb3dlcmlu
ZyBvZiBtYWxmb3JtZWQgQmFzZUluZGV4IGFkZHJlc3Nlcy4KKyMKKworY2xhc3MgQmFzZUluZGV4
CisgICAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc1JlY3Vyc2UobGlzdCwgbm9kZSwg
JmJsb2NrKQorICAgICAgICBpZiBzY2FsZVNoaWZ0ID09IDAKKyAgICAgICAgICAgIHRtcDAgPSBU
bXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFtiYXNlLCBpbmRleCwgdG1wMF0pCisgICAgICAgICAg
ICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4s
IG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0bXAwID0gVG1wLm5l
dyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgImxzaGlmdGkiLCBbaW5kZXgsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwg
c2NhbGVTaGlmdCksIHRtcDBdKTsKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIHRtcDBdKQorICAgICAgICAgICAgQWRkcmVzcy5u
ZXcoY29kZU9yaWdpbiwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBvZmZzZXQudmFs
dWUpKTsKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworIworIyBMb3dlcmluZyBvZiBtaXNw
bGFjZWQgaW1tZWRpYXRlcyBvZiBNSVBTIHNwZWNpZmljIGluc3RydWN0aW9ucy4gRm9yIGV4YW1w
bGU6CisjCisjIHNsdHUgcmVnLCA0LCAyCisjCisjIHdpbGwgYmVjb21lOgorIworIyBtb3ZlIDQs
IHRtcAorIyBzbHR1IHJlZywgdG1wLCAyCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRJbW1l
ZGlhdGVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAg
fCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAg
Y2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAic2x0IiwgInNsdHUiLCAic2x0YiIs
ICJzbHR1YiIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlzX2E/IEltbWVk
aWF0ZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwg
OmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzFdLCB0bXBdLCBub2RlLmFubm90
YXRpb24pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCB0bXAsIG5vZGUub3BlcmFuZHNb
Ml1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
LmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBl
bHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAg
IG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxpemF0aW9uIG9mIGxvd2VyaW5nIG9mIG1pc3Bs
YWNlZCBhZGRyZXNzZXMuCisjCisKK2RlZiBtaXBzTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVj
aWZpYyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwg
bm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBv
c3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3Rh
dGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiam1w
IgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uYWRkcmVzcz8KKyAgICAgICAg
ICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHJhIikKKyAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2Rl
T3JpZ2luLCAibG9hZGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9w
Y29kZSwgW3RtcF0pCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmlzY0FzUmVnaXN0ZXIobmV3
TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5vcGVyYW5kc1swXSwgInAiLCBmYWxzZSldKQor
ICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAgICAgICAg
ICAgICByZXN0b3JlR1AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRz
WzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5u
ZXcoIiR0OSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRwIiwgW25vZGUub3BlcmFuZHNbMF0s
IHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJlbFJlZmVyZW5jZQorICAgICAg
ICAgICAgICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRzWzBdCisgICAgICAgICAgICAgICAgICAg
IHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1sw
XS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5l
dygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0
bXBdKQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gbm9kZS5vcGVyYW5kc1swXQorICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFt0bXBdKQorICAgICAgICAgICAgICAg
IGlmIHJlc3RvcmVHUAorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJtb3ZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRzNCIpLCBTcGVjaWFsUmVnaXN0ZXIu
bmV3KCIkZ3AiKV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVuICJzbHQi
LCAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiaSIpKQorICAgICAg
ICAgICAgd2hlbiAic2x0dWIiLCAic2x0YiIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJh
bmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAiYnoiLCAiYm56IiwgImJzIiwgImJvIgorICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNjQXNSZWdpc3Rl
cnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMsICJpIikpCisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9ucworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAor
CisjCisjIExvd2VyaW5nIGNvbXBhcmVzIGFuZCB0ZXN0cy4KKyMKKworZGVmIG1pcHNMb3dlckNv
bXBhcmVUZW1wbGF0ZShsaXN0LCBub2RlLCBvcENtcCwgb3BNb3YpCisgICAgdG1wMCA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9y
aWdpbiwgOmdwcikKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAwKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAg
bGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcENtcCwgW25vZGUub3Bl
cmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcDBdKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhuaWwsIDEpLCB0
bXAxXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wTW92
LCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMF0pCitlbmQKKworZGVmIG1pcHNMb3dlckNv
bXBhcmVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAg
fCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAg
Y2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiY2llcSIsICJjcGVxIiwgImNiZXEi
CisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUs
ICJzdWJwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAiY2luZXEiLCAiY3BuZXEiLCAiY2Ju
ZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5v
ZGUsICJzdWJwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoi
CisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUs
ICJhbmRwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAidGlueiIsICJ0Ym56IiwgInRwbnoi
CisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUs
ICJhbmRwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGlvIiwgInRibyIsICJ0cG8iCisg
ICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAg
ICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5k
cCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAg
ICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtu
b2RlLm9wZXJhbmRzWzJdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCB0bXBdKQorICAg
ICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCisgICAgICAgICAgICAgICAgdG1wID0g
VG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFd
LCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCB0bXAs
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIildKQorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3
TGlzdAorZW5kCisKKyMKKyMgTGVhIHN1cHBvcnQuCisjCisKK2NsYXNzIEFkZHJlc3MKKyAgICBk
ZWYgbWlwc0VtaXRMZWEoZGVzdGluYXRpb24pCisgICAgICAgIGlmIGRlc3RpbmF0aW9uID09IGJh
c2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlvbi5taXBzT3BlcmFu
ZH0sICN7b2Zmc2V0LnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICJhZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tiYXNlLm1pcHNPcGVyYW5kfSwg
I3tvZmZzZXQudmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisjIEFkZCBQ
SUMgY29tcGF0aWJsZSBoZWFkZXIgY29kZSB0byBwcm9sb2d1ZS9lbnRyeSBydXRpbnMuCisjCisK
K2RlZiBtaXBzQWRkUElDQ29kZShsaXN0KQorICAgIG15TGlzdCA9IFtdCisgICAgbGlzdC5lYWNo
IHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgbXlMaXN0IDw8IG5vZGUKKyAgICAgICAgaWYg
bm9kZS5pc19hPyBMYWJlbAorICAgICAgICAgICAgaWYgL19wcm9sb2d1ZSQvLm1hdGNoKG5vZGUu
bmFtZSkgfHwgL15fbGxpbnRfZnVuY3Rpb25fLy5tYXRjaChub2RlLm5hbWUpCisgICAgICAgICAg
ICAgICAgIyBGdW5jdGlvbnMgY2FsbGVkIGZyb20gdHJhbXBvbGluZS9KSVQgY29kZXMuCisgICAg
ICAgICAgICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJw
aWNoZHIiLCBbXSkKKyAgICAgICAgICAgIGVsc2lmIC9fbGxpbnRfb3BfY2F0Y2gvLm1hdGNoKG5v
ZGUubmFtZSkKKyAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbiBjYWN0Y2hlciBlbnRyeSBwb2lu
dCBmdW5jdGlvbi4KKyAgICAgICAgICAgICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInBpY2hkcnJhIiwgW10pCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ZW5kCisgICAgfQorICAgIG15TGlzdAorZW5kCisKKyMKKyMgQWN0dWFsIGxvd2VyaW5nIGNvZGUg
Zm9sbG93cy4KKyMKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0TUlQ
UworICAgICAgICByZXN1bHQgPSBAbGlzdAorCisgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2ls
bCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KKyAgICAgICAgcmVzdWx0LmVhY2gg
eworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIHVubGVzcyBub2RlLmlzX2E/IElu
c3RydWN0aW9uIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAg
ICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAgICAgICAgICAg
ICAgICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVk
ICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iCisgICAgICAgICAgICBlbmQK
KyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1pcHNBZGRQSUNDb2RlKHJlc3VsdCkKKyAg
ICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3BzKHJlc3VsdCkKKyAgICAgICAg
cmVzdWx0ID0gcmlzY0xvd2VySGFyZEJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlclNoaWZ0T3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFs
Zm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgeworICAgICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwK
KyAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICgt
MHhmZmZmLi4weGZmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9
CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1
bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0
KQorICAgICAgICByZXN1bHQgPSBtaXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkK
KyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIC0w
eGZmZmYuLjB4ZmZmZikKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVz
c2VzQ29tbW9uKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxhY2VkQWRk
cmVzc2VzU3BlY2lmaWMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3Rl
clJldXNlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyQ29tcGFyZXMocmVzdWx0
KQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwg
OmdwciwgTUlQU19URU1QX0dQUlMpCisgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1Rv
VGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBNSVBTX1RFTVBfRlBSUykKKworICAgICAgICByZXR1
cm4gcmVzdWx0CisgICAgZW5kCitlbmQKKworZGVmIG1pcHNPcGVyYW5kcyhvcGVyYW5kcykKKyAg
ICBvcGVyYW5kcy5tYXB7fHZ8IHYubWlwc09wZXJhbmR9LmpvaW4oIiwgIikKK2VuZAorCitkZWYg
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBtaXBzT3BlcmFuZHMoW29wZXJhbmRz
Wy0xXV0gKyBvcGVyYW5kc1swLi4tMl0pCitlbmQKKworZGVmIGdldE1JUFNPcGNvZGUob3Bjb2Rl
LCBzdWZmaXgpCisKK2VuZAorCitkZWYgZW1pdE1JUFNDb21wYWN0KG9wY29kZSwgb3Bjb2RlaSwg
b3BlcmFuZHMpCisgICAgcG9zdGZpeCA9ICIiCisgICAgaWYgb3Bjb2RlID09ICJzdWIiCisgICAg
ICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgb3Bjb2RlID0g
ImFkZCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdID0gSW1tZWRpYXRlLm5ldyhvcGVyYW5kc1sw
XS5jb2RlT3JpZ2luLCAtMSAqIG9wZXJhbmRzWzBdLnZhbHVlKQorICAgICAgICBlbHNpZiBvcGVy
YW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQiCisgICAg
ICAgICAgICBvcGVyYW5kc1sxXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMV0uY29kZU9yaWdp
biwgLTEgKiBvcGVyYW5kc1sxXS52YWx1ZSkKKyAgICAgICAgZW5kCisgICAgICAgIHBvc3RmaXgg
PSAidSIKKyAgICBlbHNpZiBvcGNvZGUgPT0gImFkZCIKKyAgICAgICAgcG9zdGZpeCA9ICJ1Igor
ICAgIGVuZAorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICBpZiBvcGVyYW5kc1sw
XS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9aSN7cG9z
dGZpeH0gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaXNf
YT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0
cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6
ZSA9PSAyCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAg
ICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMg
IiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1p
dE1JUFNTaGlmdENvbXBhY3Qob3Bjb2RlLCBvcGVyYW5kcykKKyAgICBpZiBvcGVyYW5kcy5zaXpl
ID09IDMKKyAgICAgICAgaWYgKG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZSkKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9diAje21pcHNGbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlzZSB1bmxl
c3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGlmIG9wZXJhbmRzWzBdLnJlZ2lzdGVyPwor
ICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX12ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS52YWx1ZX0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0TUlQ
UyhvcGNvZGUsIG9wZXJhbmRzKQorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlfSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAg
ICBlbHNlCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAg
JGFzbS5wdXRzICIje29wY29kZX0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICBlbmQK
K2VuZAorCitkZWYgZW1pdE1JUFNEb3VibGVCcmFuY2goYnJhbmNoT3Bjb2RlLCBuZWcsIG9wZXJh
bmRzKQorICAgICRhc20ucHV0cyAiYy4je2JyYW5jaE9wY29kZX0uZCAje21pcHNPcGVyYW5kcyhv
cGVyYW5kc1swLi4xXSl9IgorICAgIGlmICghbmVnKQorICAgICAgICAkYXNtLnB1dHMgImJjMXQg
I3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImJj
MWYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZW5kCitlbmQKKworY2xhc3MgSW5zdHJ1
Y3Rpb24KKyAgICBkZWYgbG93ZXJNSVBTCisgICAgICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2lu
U3RyaW5nCisgICAgICAgIGNhc2Ugb3Bjb2RlCisgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIs
ICJhZGRpcyIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNb
MF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRz
WzFdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1syXS5y
ZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS52YWx1ZSA9PSAwICNhbmQg
c3VmZml4LmVtcHR5PworICAgICAgICAgICAgICAgICAgICB1bmxlc3Mgb3BlcmFuZHNbMV0gPT0g
b3BlcmFuZHNbMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAje29w
ZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFuZCBv
cGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFu
ZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzJd
LnJlZ2lzdGVyPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAje21pcHNGbGlwcGVk
T3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBp
ZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICAgICAgdW5sZXNz
IEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXQorICAgICAgICAgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3ttaXBz
RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGR1ICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgorICAgICAgICAgICAgZW1pdE1JUFND
b21wYWN0KCJhbmQiLCAiYW5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm9yaSIsICJvcnAi
CisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoIm9yIiwgIm9yciIsIG9wZXJhbmRzKQorICAg
ICAgICB3aGVuICJvcmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJvciIsICJvcnJz
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInhvcmkiLCAieG9ycCIKKyAgICAgICAgICAgIGVt
aXRNSVBTQ29tcGFjdCgieG9yIiwgImVvciIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJsc2hp
ZnRpIiwgImxzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgic2xsIiwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gInJzaGlmdGkiLCAicnNoaWZ0cCIKKyAgICAgICAgICAg
IGVtaXRNSVBTU2hpZnRDb21wYWN0KCJzcmEiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAidXJz
aGlmdGkiLCAidXJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgic3Js
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKKyAgICAgICAgICAgIGVt
aXRNSVBTKCJtdWwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1
YmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJzdWIiLCAic3VicyIsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5l
Z3UgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9
IgorICAgICAgICB3aGVuICJub3RpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJub3IgI3tvcGVy
YW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAkemVybyIK
KyAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRwIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJsdyAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAic3RvcmVpIiwgInN0b3JlcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3cgI3ttaXBzT3Bl
cmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGIiCisgICAgICAgICAgICAkYXNt
LnB1dHMgImxidSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hl
biAibG9hZGJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYiAje21pcHNGbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmViIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzYiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkaCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibGh1ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJsb2FkaHMiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxoICN7
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWgiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInNodiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICB3aGVuICJsb2FkZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGRjMSAje21pcHNGbGlw
cGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVkIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJzZGMxICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdo
ZW4gImFkZGQiCisgICAgICAgICAgICBlbWl0TUlQUygiYWRkLmQiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiZGl2ZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJkaXYuZCIsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJzdWJkIgorICAgICAgICAgICAgZW1pdE1JUFMoInN1Yi5kIiwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gIm11bGQiCisgICAgICAgICAgICBlbWl0TUlQUygibXVsLmQiLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAic3FydGQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNx
cnQuZCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAiY2ky
ZCIKKyAgICAgICAgICAgIHJhaXNlICJpbnZhbGlkIG9wcyBvZiAje3NlbGYuaW5zcGVjdH0gYXQg
I3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzWzFdLmlzX2E/IEZQUmVnaXN0ZXJJ
RCBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiYmRlcSIKKyAgICAg
ICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAiYmRuZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWVxIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3QiCisgICAgICAgICAgICBlbWl0TUlQ
U0RvdWJsZUJyYW5jaCgidWxlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3Rl
cSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bHQiLCB0cnVlLCBvcGVyYW5k
cykKKyAgICAgICAgd2hlbiAiYmRsdCIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNo
KCJvbHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcSIKKyAgICAgICAg
ICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbGUiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gImJkZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1ZXEiLCBm
YWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxdW4iCisgICAgICAgICAgICBlbWl0
TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRn
dHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9sZSIsIHRydWUsIG9wZXJh
bmRzKQorICAgICAgICB3aGVuICJiZGd0ZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJvbHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdHVuIgorICAg
ICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsdCIsIGZhbHNlLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAiYmRsdGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgi
dWxlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJidGQyaSIKKyAgICAgICAgICAg
ICMgRklYTUU6IG1heSBiZSBhIGdvb2QgaWRlYSB0byBqdXN0IGdldCByaWQgb2YgdGhpcyBpbnN0
cnVjdGlvbiwgc2luY2UgdGhlIGludGVycHJldGVyCisgICAgICAgICAgICAjIGN1cnJlbnRseSBk
b2VzIG5vdCB1c2UgaXQuCisgICAgICAgICAgICByYWlzZSAiTUlQUyBkb2VzIG5vdCBzdXBwb3J0
IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIKKyAgICAgICAgd2hlbiAidGQyaSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1Npbmds
ZUxvfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
Im1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBz
U2luZ2xlTG99IgorICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Y3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSwgI3tvcGVyYW5kc1swXS5t
aXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5t
aXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJjdnQuZC53ICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzT3BlcmFuZH0sICN7
TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAgZW1pdE1JUFNEb3Vi
bGVCcmFuY2goImVxIiwgdHJ1ZSwgW01JUFNfU0NSQVRDSF9GUFIsIG9wZXJhbmRzWzBdLCBvcGVy
YW5kc1syXV0pCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgJHplcm8sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJt
b3ZkeiIKKyAgICAgICAgICAgICMgRklYTUU6IGVpdGhlciBzdXBwb3J0IHRoaXMgb3IgcmVtb3Zl
IGl0LgorICAgICAgICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29k
ZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInBvcCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAibHcgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sIDAoJHNwKSIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAiYWRkaXUgJHNwLCAkc3AsIDQiCisgICAgICAgIHdoZW4gInB1c2giCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRzcCwgJHNwLCAtNCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic3cgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sIDAoJHNwKSIKKyAgICAgICAg
d2hlbiAibW92ZSIsICJzeGkycCIsICJ6eGkycCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBd
LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIG1pcHNNb3ZlSW1tZWRpYXRlKG9wZXJh
bmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgIm1vdmUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibm9wIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJub3AiCisgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJiYmVxIgorICAgICAgICAgICAg
JGFzbS5wdXRzICJiZXEgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5k
c1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbmVxIiwgImJwbmVxIiwgImJibmVxIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJibmUgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0p
fSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpZ3QiLCAiYnBndCIs
ICJiYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3ttaXBzT3BlcmFuZHMob3BlcmFu
ZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpZ3Rl
cSIsICJicGd0ZXEiLCAiYmJndGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ2UgI3ttaXBz
T3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAg
ICAgIHdoZW4gImJpbHQiLCAiYnBsdCIsICJiYmx0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
bHQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJl
bH0iCisgICAgICAgIHdoZW4gImJpbHRlcSIsICJicGx0ZXEiLCAiYmJsdGVxIgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJibGUgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVy
YW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImptcCIKKyAgICAgICAgICAgIGlmIG9w
ZXJhbmRzWzBdLmxhYmVsPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAiaiAje29wZXJhbmRz
WzBdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1
dHMgImpyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgZW5kCisgICAg
ICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgImphbCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImphbHIgI3tvcGVyYW5kc1sw
XS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYnJlYWsiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImJyZWFrIgorICAgICAgICB3aGVuICJyZXQiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImpyICRyYSIKKyAgICAgICAgd2hlbiAiY2lhIiwgImNwYSIsICJjYmEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgd2hlbiAiY2lhZXEiLCAiY3BhZXEiLCAiY2JhZXEiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAi
Y2liIiwgImNwYiIsICJjYmIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2liZXEiLCAiY3BiZXEiLCAiY2JiZXEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
MSIKKyAgICAgICAgd2hlbiAiY2lndCIsICJjcGd0IiwgImNiZ3QiCisgICAgICAgICAgICAkYXNt
LnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJjaWd0
ZXEiLCAiY3BndGVxIiwgImNiZ3RlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3Bl
cmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVy
YW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpbHQiLCAiY3BsdCIsICJj
Ymx0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSIKKyAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJjYmx0ZXEiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAxIgorICAgICAgICB3
aGVuICJwZWVrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9KCRzcCkiCisgICAgICAgIHdoZW4gInBv
a2UiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzBdLnZhbHVlICogNH0oJHNwKSIKKyAgICAgICAgd2hlbiAiZmlpMmQiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibXRjMSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzU2luZ2xlSGl9Igor
ICAgICAgICB3aGVuICJmZDJpaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzU2luZ2xlTG99IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzBdLm1pcHNTaW5nbGVIaX0iCisgICAgICAgIHdoZW4gImJvIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJiZ3QgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYnMiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImJsdCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICB3aGVuICJieiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21M
YWJlbH0iCisgICAgICAgIHdoZW4gImJueiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYm5lICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImxlYWkiLCAibGVhcCIKKyAgICAg
ICAgICAgIG9wZXJhbmRzWzBdLm1pcHNFbWl0TGVhKG9wZXJhbmRzWzFdKQorICAgICAgICB3aGVu
ICJzbXVsbGkiCisgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0
byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNz
IG9wZXJhbmRzLmxlbmd0aCA9PSA0CisgICAgICAgICAgICAkYXNtLnB1dHMgIm11bHQgI3tvcGVy
YW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJtZmxvICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJtZmhpICN7b3BlcmFuZHNbM10ubWlwc09wZXJhbmR9IgorICAgICAg
ICB3aGVuICJtb3Z6IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z6ICN7b3BlcmFuZHNbMF0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5t
aXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm1vdm4iCisgICAgICAgICAgICAkYXNtLnB1dHMg
Im1vdm4gI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0IiwgInNs
dGIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9
IgorICAgICAgICB3aGVuICJzbHR1IiwgInNsdHViIgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
bHR1ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInBpY2hkciIKKyAg
ICAgICAgICAgICRhc20ucHV0U3RyKCJPRkZMSU5FX0FTTV9DUExPQUQoJDI1KSIpCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIm1vdmUgJHM0LCAkZ3AiCisgICAgICAgIHdoZW4gInBpY2hkcnJhIgor
ICAgICAgICAgICAgJGFzbS5wdXRTdHIoIk9GRkxJTkVfQVNNX0NQTE9BRCgkMzEpIikKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibW92ZSAkczQsICRncCIKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmFpc2UgIlVuaGFuZGxlZCBvcGNvZGUgI3tvcGNvZGV9IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vcmlzYy5yYgppbmRleCA0NGI0ZGJkLi40OTFhM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTYzLDEwICs2Myw2IEBAIGRlZiByaXNjTG93ZXJT
aW1wbGVCcmFuY2hPcHMobGlzdCkKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJh
bmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW25vZGUub3BlcmFuZHNbLTFdXSkK
LSAgICAgICAgICAgIHdoZW4gJ2JtdWxpcycsICdibXVseicsICdibXVsbnonCi0gICAgICAgICAg
ICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAotICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9wZXJhbmRz
WzAuLi0yXSwgYW5ub3RhdGlvbikKLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5vcGVyYW5k
c1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVuZApAQCAtOTMsMTIgKzg5LDIyIEBA
IGRlZiByaXNjTG93ZXJIYXJkQnJhbmNoT3BzKGxpc3QpCiAgICAgbmV3TGlzdCA9IFtdCiAgICAg
bGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKLSAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0
cnVjdGlvbiBhbmQgbm9kZS5vcGNvZGUgPT0gImJtdWxpbyIKLSAgICAgICAgICAgIHRtcDEgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2Rl
Lm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAxXSwgbm9kZS5hbm5vdGF0aW9uKQot
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
cnNoaWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2RlLmNvZGVPcmln
aW4sIDMxKSwgdG1wMl0pCi0gICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRzWy0xXV0p
CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGFubm90YXRp
b24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAg
ICAgICAgIHdoZW4gICJibXVsaW8iCisgICAgICAgICAgICAgICAgdG1wMSA9IFRtcC5uZXcobm9k
ZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIHRtcDIgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5v
cGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5ub3RhdGlvbikKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1lZGlhdGUubmV3KG5vZGUuY29kZU9y
aWdpbiwgMzEpLCB0bXAyXSkKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRz
Wy0xXV0pCisgICAgICAgICAgICB3aGVuIC9eYm11bGkvCisgICAgICAgICAgICAgICAgY29uZGl0
aW9uID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5u
b3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5vcGVyYW5kc1stMl0sIG5vZGUu
b3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBuZXdM
aXN0IDw8IG5vZGUKICAgICAgICAgZW5kCkBAIC00NDcsNyArNDUzLDcgQEAgZGVmIHJpc2NBc1Jl
Z2lzdGVycyhwcmVMaXN0LCBwb3N0TGlzdCwgb3BlcmFuZHMsIHN1ZmZpeCkKICAgICBuZXdPcGVy
YW5kcwogZW5kCiAKLWRlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKK2RlZiBy
aXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24obGlzdCkKICAgICBuZXdMaXN0ID0gW10K
ICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfApAQCAtNDgzLDYgKzQ4OSwyNSBAQCBk
ZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0
cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJkIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbikKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgbmV3
TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xp
c3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKK2RlZiBy
aXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xpc3QgPSBb
XQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNf
YT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAg
ICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2Rl
Lm9wY29kZQogICAgICAgICAgICAgd2hlbiAiam1wIiwgImNhbGwiCiAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjMTNlNzUw
Li5kOWMzYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTExLTI3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0u
aDoKKwogMjAxMi0xMS0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNTgyOC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CmluZGV4IDE2MDMwMTkuLmI1N2FjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtOTI3LDcgKzkyNyw3IEBA
CiAgICAgJiYgRU5BQkxFKEpJVCkgXAogICAgICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSkg
XAogICAgICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShRVCkpIFwKLSAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTV9USFVNQjIpKQorICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUo
QVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlm
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179758</attachid>
            <date>2012-12-17 09:20:24 -0800</date>
            <delta_ts>2012-12-18 04:11:34 -0800</delta_ts>
            <desc>LLInt implementation for MIPS reusing risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57735</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE5OWI2ZjAuLjk3ODBhYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEyLTE3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YnJh
bmNoVGVzdDgpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpT
Qyk6CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtz
OjpKSVRUaHVua3MpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuaDoK
KyAgICAgICAgKEpJVFN0YWNrRnJhbWUpOgorICAgICAgICAqIGxsaW50L0xMSW50T2ZmbGluZUFz
bUNvbmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAg
ICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogb2Zm
bGluZWFzbS9hcm12Ny5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2JhY2tlbmRzLnJiOgorICAg
ICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20v
bWlwcy5yYjogQWRkZWQuCisgICAgICAgICogb2ZmbGluZWFzbS9yaXNjLnJiOgorCiAyMDEyLTEy
LTE3ICBKb25hdGhhbiBMaXUgIDxuZXQxNDdAZ21haWwuY29tPgogCiAgICAgICAgIEZpeCBNYXRo
LnBvdyBpbXBsZW1lbnRhdGlvbiB3aXRoIE1pbkdXLXc2NApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkYmE0NjQzLi5lMzEzYTY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEyLTE3ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZh
ZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTExJbnQgaW1w
bGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAx
Mi0xMi0xNyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogTmF0aXZlIE1lbW9yeSBJbnN0cnVtZW50YXRpb246IE1lbW9yeUlu
c3RydW1lbnRhdGlvbiBkb2Vzbid0IGRldGVjdCByZXBvcnRNZW1vcnlVc2FnZSBtZXRob2QgZGVm
aW5lZCBpbiBhIGJhc2UgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCA0ZjgxYjQ1Li40NGY5NGNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQ
Uy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJN
SVBTLmgKQEAgLTEzMDQsNyArMTMwNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQganVtcChSZWdp
c3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmpyKHRhcmdldCk7Cisg
ICAgICAgIG1vdmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmpyKE1JUFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBmYjJmMDE5Li5iMWFmMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKQEAgLTQ3LDYgKzQ3LDE4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaWYg
Q1BVKE1JUFMpCisjaWYgV1RGX01JUFNfUElDCisjZGVmaW5lIExPQURfRlVOQ1RJT05fVE9fVDko
ZnVuY3Rpb24pIFwKKyAgICAgICAgIi5zZXQgbm9yZW9yZGVyIiAiXG4iIFwKKyAgICAgICAgIi5j
cGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCisgICAgICAg
ICJsYSAkdDksICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iCisjZWxzZQorI2RlZmlu
ZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSAiIiAiXG4iCisjZW5kaWYKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpZiBDT01QSUxFUihHQ0MpICYmIENQVShYODZfNjQp
CkBAIC0yMDEsNiArMjEzLDUyIEBACiAgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0
aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAogICAgICk7CiAKKyNlbGlmIENPTVBJTEVS
KEdDQykgJiYgQ1BVKE1JUFMpCisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVS
Tl9BRERSRVNTX0UoZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAor
ICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZ
TUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJc
biIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNz
KSBcCisgICAgICAgICJtb3ZlICRhMSwgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9S
RUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKwor
I2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUNJKGZ1bmN0aW9u
KSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9M
X1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIg
XAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZVTkNU
SU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAibW92ZSAk
YTMsICRyYSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAi
V2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JB
UFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VKSShmdW5jdGlvbikgXAorICAgIGFzbSggXAorICAg
ICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJc
biIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5H
KGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbiMj
V2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjAoJHNwKSIgIlxuIiBcCisg
ICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3Mi
ICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9B
RERSRVNTX0VKQ0koZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIgXAor
ICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZ
TUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoiICJc
biIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRyZXNz
KSBcCisgICAgICAgICJzdyAkcmEsIDI0KCRzcCkiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOwor
CiAjZW5kaWYKIAogI2RlZmluZSBQX0ZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVT
U19FKGZ1bmN0aW9uKSBcCkBAIC0xNjIzLDYgKzE2ODEsMTcgQEAgU1lNQk9MX1NUUklORyhnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgogICAgICJtb3YgcjAsIHI1IiAiXG4iCiAgICAg
ImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUp
ICJcbiIKICk7CisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShNSVBTKQorYXNtKAorIi50ZXh0
IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCitISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCitTWU1CT0xfU1RS
SU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCisgICAgTE9BRF9GVU5DVElPTl9U
T19UOShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkKKyAgICAibHcgJHMwLCAt
NDAoJHMwKSIgIlxuIgorICAgICJtb3ZlICRhMCwgJHMwIiAiXG4iCisgICAgImIgIiBMT0NBTF9S
RUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKKyk7CiAj
ZW5kaWYKIAogZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVF
X09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShFeGVjU3RhdGUqIGV4
ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IGFkMDU4YWUuLmZh
ZTUxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0yODAsMTEg
KzI4MCwxMyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgUFJFU0VSVkVEX1MwX09GRlNFVCAgICAg
ICAgIDY0CiAjZGVmaW5lIFBSRVNFUlZFRF9TMV9PRkZTRVQgICAgICAgICA2OAogI2RlZmluZSBQ
UkVTRVJWRURfUzJfT0ZGU0VUICAgICAgICAgNzIKLSNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9B
RERSRVNTX09GRlNFVCA3NgotI2RlZmluZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQgODAK
LSNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgIDg0Ci0jZGVmaW5lIEdMT0JBTF9E
QVRBX09GRlNFVCAgICAgICAgIDEwMAotI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAg
ICAxMDQKKyNkZWZpbmUgUFJFU0VSVkVEX1MzX09GRlNFVCAgICAgICAgIDc2CisjZGVmaW5lIFBS
RVNFUlZFRF9TNF9PRkZTRVQgICAgICAgICA4MAorI2RlZmluZSBQUkVTRVJWRURfUkVUVVJOX0FE
RFJFU1NfT0ZGU0VUIDg0CisjZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4OAor
I2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgOTIKKyNkZWZpbmUgR0xPQkFMX0RB
VEFfT0ZGU0VUICAgICAgICAgMTA4CisjZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAgICAg
IDExMgogI2VsaWYgQ1BVKFNINCkKICNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAjbmFtZQog
LyogY29kZSAocjQpLCBKU1N0YWNrKiAocjUpLCBDYWxsRnJhbWUqIChyNiksIHZvaWQqIHVudXNl
ZDEgKHI3KSwgdm9pZCogdW51c2VkMihzcCksIEpTR2xvYmFsRGF0YSAoc3ApKi8KQEAgLTMxOCw2
ICszMjAsOSBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImFk
ZCAjMTIsIHIxNSIgIlxuIgogICAgICJydHMiICJcbiIKICAgICAibm9wIiAiXG4iCisiLmdsb2Js
ICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitISURFX1NZTUJPTChjdGlU
cmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6IiAi
XG4iCiApOwogCiBhc20gdm9sYXRpbGUgKApAQCAtNDUxLDYgKzQ1Niw4IEBAIGFzbSAoCiBTWU1C
T0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImFkZGl1ICQyOSwkMjksLSIg
U1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogICAgICJzdyAgICAkMzEsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkp
IiAiXG4iCisgICAgInN3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAic3cgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTgsIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3
ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSki
ICJcbiIKICAgICAic3cgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9P
RkZTRVQpICIoJDI5KSIgIlxuIgpAQCAtNDY3LDEyICs0NzQsMTcgQEAgU1lNQk9MX1NUUklORyhj
dGlUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAi
bHcgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5
KSIgIlxuIgorICAgICJsdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mz
X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzRfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIg
IlxuIgogICAgICJqciAgICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0la
RV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKICIuc2V0IHJlb3JkZXIiICJcbiIKICIuc2V0
IG1hY3JvIiAiXG4iCiAiLmVuZCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgor
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1C
T0woY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5k
KSAiOiIgIlxuIgogKTsKIAogYXNtICgKQEAgLTQ4NSw4ICs0OTcsOCBAQCBhc20gKAogIi5lbnQg
IiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCiBTWU1CT0xfU1RSSU5H
KGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgogI2lmIFdURl9NSVBTX1BJQwotICAgICJs
dyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkp
IiAiXG4iCiAiLnNldCBtYWNybyIgIlxuIgorIi5jcGxvYWQgJDMxIiAiXG4iCiAgICAgImxhICAg
ICQyNSwiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCiAiLnNldCBub21hY3JvIiAi
XG4iCiAgICAgImJhbCAiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCkBAIC00OTgs
NiArNTEwLDggQEAgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIK
ICAgICAibHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQp
ICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VS
VkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgor
ICAgICJsdyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkg
IigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAi
XG4iCiAgICAgImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RI
KSAiXG4iCkBAIC01MTgsNiArNTMyLDggQEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1
Z2h0KSAiOiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VS
VkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9W
QUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4
LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgor
ICAgICJsdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkg
IigkMjkpIiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJW
RURfUzRfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJqciAgICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9P
RihTVEFDS19MRU5HVEgpICJcbiIKQEAgLTgxNSw2ICs4MzEsOCBAQCBKSVRUaHVua3M6OkpJVFRo
dW5rcyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUzApID09IFBSRVNFUlZFRF9TMF9PRkZT
RVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHBy
ZXNlcnZlZFMxKSA9PSBQUkVTRVJWRURfUzFfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09G
RlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMikgPT0gUFJFU0VSVkVEX1My
X09GRlNFVCk7CisgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgcHJlc2VydmVkUzMpID09IFBSRVNFUlZFRF9TM19PRkZTRVQpOworICAgIEFTU0VSVChPQkpF
Q1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFM0KSA9PSBQUkVTRVJW
RURfUzRfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFj
a0ZyYW1lLCBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzKSA9PSBQUkVTRVJWRURfUkVUVVJOX0FERFJF
U1NfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0Zy
YW1lLCB0aHVua1JldHVybkFkZHJlc3MpID09IFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7
CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgc3RhY2sp
ID09IFJFR0lTVEVSX0ZJTEVfT0ZGU0VUKTsKQEAgLTExMTgsOSArMTEzNiw5IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0YXRpYyBUIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbChKSVRTdGFja0Zy
YW1lJiBqaXRTdGFja0ZyCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29w
KSAiXG4iIFwKICAgICAgICAgIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwK
ICAgICAgICAgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIjoiICJcbiIgXAotICAgICAgICAibHcg
ICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIg
IlxuIiBcCi0gICAgICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAogICAgICAgICAiLnNldCBtYWNybyIg
IlxuIiBcCisgICAgICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICJzdyAgICAkMzEs
IiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSki
ICJcbiIgXAogICAgICAgICAibGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtl
ZF8jI29wKSAiXG4iIFwKICAgICAgICAgIi5zZXQgbm9tYWNybyIgIlxuIiBcCiAgICAgICAgICIu
cmVsb2MgMWYsUl9NSVBTX0pBTFIsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3Ap
ICJcbiIgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IGZmNjdjMmEuLjUw
ZDM0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKQEAgLTIyOCw2ICsyMjgs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUzA7CiAgICAgICAg
IHZvaWQqIHByZXNlcnZlZFMxOwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMjsKKyAgICAgICAg
dm9pZCogcHJlc2VydmVkUzM7CisgICAgICAgIHZvaWQqIHByZXNlcnZlZFM0OwogICAgICAgICB2
b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwogCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIg
dGh1bmtSZXR1cm5BZGRyZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IGRhMmQ1MTAuLjE1NzUyMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgK
QEAgLTM4LDYgKzM4LDcgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fQVJNdjcgMAogI2RlZmluZSBP
RkZMSU5FX0FTTV9YODZfNjQgMAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12N3MgMAorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9NSVBTIDAKIAogI2Vsc2UgLy8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAK
QEAgLTY3LDYgKzY4LDEyIEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX1g4Nl82NCAwCiAjZW5kaWYK
IAorI2lmIENQVShNSVBTKQorI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDEKKyNlbHNlCisjZGVm
aW5lIE9GRkxJTkVfQVNNX01JUFMgMAorI2VuZGlmCisKICNlbmRpZiAvLyAhRU5BQkxFKExMSU5U
X0NfTE9PUCkKIAogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0xMTEsNCArMTE4LDE3IEBACiAjZGVm
aW5lIE9GRkxJTkVfQVNNX1ZBTFVFX1BST0ZJTEVSIDAKICNlbmRpZgogCisjaWYgQ1BVKE1JUFMp
CisjaWZkZWYgV1RGX01JUFNfUElDCisjZGVmaW5lIFMoeCkgI3gKKyNkZWZpbmUgU1goeCkgUyh4
KQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVnKSBcCisgICAgIi5zZXQgbm9yZW9yZGVy
XG4iIFwKKyAgICAiLmNwbG9hZCAiIFNYKHJlZykgIlxuIiBcCisgICAgIi5zZXQgcmVvcmRlclxu
IgorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fQ1BMT0FEKHJlZykKKyNlbmRpZgorI2VuZGlm
CisKICNlbmRpZiAvLyBMTEludE9mZmxpbmVBc21Db25maWdfaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDAwZDVjNGYu
LjlkZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20KQEAgLTE4MiwxMCArMTgyLDggQEAgbWFjcm8gYXNzZXJ0KGFzc2Vy
dGlvbikKIGVuZAogCiBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGlu
YXRpb25SZWdpc3RlcikKLSAgICBpZiBDX0xPT1AKLSAgICAgICAgIyBJbiBvdXIgY2FzZSwgd2Un
cmUgb25seSBwcmVzZXJ2aW5nIHRoZSBieXRlY29kZSB2UEMuIAotICAgICAgICBtb3ZlIGxyLCBk
ZXN0aW5hdGlvblJlZ2lzdGVyCi0gICAgZWxzaWYgQVJNdjcKKyAgICBpZiBDX0xPT1Agb3IgQVJN
djcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHByZXNlcnZp
bmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3Rl
cgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0
ZXIKQEAgLTE5NSwxMCArMTkzLDggQEAgbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiBlbmQKIAogbWFjcm8gcmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIpCi0gICAgaWYgQ19MT09QCi0gICAgICAgICMg
SW4gb3VyIGNhc2UsIHdlJ3JlIG9ubHkgcmVzdG9yaW5nIHRoZSBieXRlY29kZSB2UEMuIAotICAg
ICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgotICAgIGVsc2lmIEFSTXY3CisgICAgaWYgQ19M
T09QIG9yIEFSTXY3IG9yIE1JUFMKKyAgICAgICAgIyBJbiBDX0xPT1AgY2FzZSwgd2UncmUgb25s
eSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3Rl
ciwgbHIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAgICAgIHB1c2ggc291cmNlUmVnaXN0
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggOGQ1Y2RmMS4uOWExNzk4NWJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQpAQCAtMTEzLDYgKzExMywxMCBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFy
ZzIpCiAgICAgICAgIHBva2UgYXJnMSwgMAogICAgICAgICBwb2tlIGFyZzIsIDEKICAgICAgICAg
Y2FsbCBmdW5jdGlvbgorICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAg
ICAgICBtb3ZlIGFyZzIsIGExCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xP
T1AKICAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGggZnVuY3Rpb24sIGFyZzEsIGFyZzIKICAgICBl
bHNlCkBAIC0xMzQsNiArMTM4LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJn
MiwgYXJnMywgYXJnNCkKICAgICAgICAgcG9rZSBhcmczLCAyCiAgICAgICAgIHBva2UgYXJnNCwg
MwogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFy
ZzEsIGEwCisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgbW92ZSBhcmczLCBhMgorICAg
ICAgICBtb3ZlIGFyZzQsIGEzCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xP
T1AKICAgICAgICAgZXJyb3IKICAgICBlbHNlCkBAIC0xODE4LDYgKzE4MjgsMjAgQEAgbWFjcm8g
bmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAg
IGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1
cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpn
bG9iYWxEYXRhW3NwXSwgdDMKKyAgICBlbHNpZiBNSVBTCisgICAgICAgIGxvYWRwIEpJVFN0YWNr
RnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERh
dGE6OnRvcENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92ZSB0MCwgdDIKKyAgICAgICAgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBD
W2Nmcl0KKyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxv
YWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxl
W3QxXSwgdDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIG1vdmUgdDAsIGEwCisgICAg
ICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1l
OjpnbG9iYWxEYXRhW3NwXSwgdDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAgSklU
U3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xv
YmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXJtdjcucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9hcm12Ny5yYgppbmRleCAwNzhiZThjLi5kN2QwNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm12Ny5yYgpAQCAtMTc5LDcgKzE3OSw4IEBAIGNsYXNzIFNlcXVlbmNl
CiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1
bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0
KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKHJlc3VsdCwg
MC4uMHhmZikKLSAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJl
c3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9u
KHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3Bl
Y2lmaWMocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJl
c3VsdCkKICAgICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1
bHQsIDpncHIsIEFSTXY3X0VYVFJBX0dQUlMpCiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lz
dGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCA3OGU1NDU3Li5l
ZjkzNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNr
ZW5kcy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5y
YgpAQCAtMjUsNiArMjUsNyBAQCByZXF1aXJlICJjb25maWciCiByZXF1aXJlICJhcm12NyIKIHJl
cXVpcmUgImFzdCIKIHJlcXVpcmUgIng4NiIKK3JlcXVpcmUgIm1pcHMiCiByZXF1aXJlICJjbG9v
cCIKIAogQkFDS0VORFMgPQpAQCAtMzIsNiArMzMsNyBAQCBCQUNLRU5EUyA9CiAgICAgICJYODYi
LAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3IiwKKyAgICAgIk1JUFMiLAogICAgICAiQ19M
T09QIgogICAgIF0KIApAQCAtNDUsNiArNDcsNyBAQCBXT1JLSU5HX0JBQ0tFTkRTID0KICAgICAg
Ilg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAorICAgICAiTUlQUyIsCiAgICAg
ICJDX0xPT1AiCiAgICAgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmIKaW5kZXggZTA0N2IyYS4uNGU3MDYyNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtMjY1LDYgKzI2
NSwxNiBAQCBBUk12N19JTlNUUlVDVElPTlMgPQogICAgICAib3JpcyIKICAgICBdCiAKK01JUFNf
SU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgIm1vdnoiLAorICAgICJtb3ZuIiwKKyAgICAic2x0
IiwKKyAgICAic2x0dSIsCisgICAgInBpY2hkciIsCisgICAgInBpY2hkcnJhIgorICAgIF0KKwog
Q1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAgICAiY2xvb3BDcmFzaCIsICAgICAgICAgICAj
IG5vIG9wZXJhbmRzCkBAIC0yODEsNyArMjkxLDcgQEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJjbG9vcERvIiwgICAgICAgICAgICAgICMgbm8gb3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNU
SU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk12N19JTlNU
UlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCitJTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVD
VElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNU
UlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAKIElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdl
eHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMuam9pbignKXwoJykgKyAnKSlcXFonKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42MzM0NDJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpAQCAtMCwwICsxLDg2OCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTIgTUlQUyBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNSVBTIFRFQ0hOT0xPR0lFUywgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIE1JUFMgVEVDSE5PTE9HSUVTLCBJTkMuIE9S
CisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworcmVxdWlyZSAncmlzYycK
KworY2xhc3MgQXNzZW1ibGVyCisgICAgZGVmIHB1dFN0cihzdHIpCisgICAgICAgIEBvdXRwLnB1
dHMgc3RyCisgICAgZW5kCitlbmQKKworY2xhc3MgTm9kZQorICAgIGRlZiBtaXBzU2luZ2xlSGkK
KyAgICAgICAgZG91YmxlT3BlcmFuZCA9IG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1
cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+
IC9eXCRmLworICAgICAgICAiJGYiICsgKCR+LnBvc3RfbWF0Y2gudG9faSArIDEpLnRvX3MKKyAg
ICBlbmQKKyAgICBkZWYgbWlwc1NpbmdsZUxvCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBtaXBz
T3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJh
bmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXlwkZi8KKyAgICAgICAgZG91YmxlT3BlcmFu
ZAorICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAg
ICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRlZiBkdW1w
CisgICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRy
dWUKKyAgICBlbmQKK2VuZAorCitNSVBTX1RFTVBfR1BSUyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3
KCIkdDUiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ2IiksIFNwZWNpYWxSZWdpc3Rlci5uZXco
IiR0NyIpLAorICAgICAgICAgICAgICAgICAgICBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDgiKV0K
K01JUFNfVEVNUF9GUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRmMTYiKV0KK01JUFNfU0NS
QVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZjE4IikKKworZGVmIG1pcHNNb3ZlSW1t
ZWRpYXRlKHZhbHVlLCByZWdpc3RlcikKKyAgICBpZiB2YWx1ZSA9PSAwCisgICAgICAgICRhc20u
cHV0cyAiYWRkICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9LCAkemVybywgJHplcm8iCisgICAgZWxz
ZQorICAgICAgICAkYXNtLnB1dHMgImxpICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9LCAje3ZhbHVl
fSIKKyAgICBlbmQKK2VuZAorCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgbWlwc09wZXJh
bmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdoZW4gImEwIgorICAgICAgICAgICAgIiRh
MCIKKyAgICAgICAgd2hlbiAiYTEiCisgICAgICAgICAgICAiJGExIgorICAgICAgICB3aGVuICJy
MCIsICJ0MCIKKyAgICAgICAgICAgICIkdjAiCisgICAgICAgIHdoZW4gInIxIiwgInQxIgorICAg
ICAgICAgICAgIiR2MSIKKyAgICAgICAgd2hlbiAidDIiCisgICAgICAgICAgICAiJHQyIgorICAg
ICAgICB3aGVuICJ0MyIKKyAgICAgICAgICAgICIkczMiCisgICAgICAgIHdoZW4gInQ0IiAgICMg
UEMgcmVnIGluIGxsaW50CisgICAgICAgICAgICAiJHMyIgorICAgICAgICB3aGVuICJ0NSIKKyAg
ICAgICAgICAgICIkdDUiCisgICAgICAgIHdoZW4gInQ2IgorICAgICAgICAgICAgIiR0NiIKKyAg
ICAgICAgd2hlbiAidDciCisgICAgICAgICAgICAiJHQ3IgorICAgICAgICB3aGVuICJ0OCIKKyAg
ICAgICAgICAgICIkdDgiCisgICAgICAgIHdoZW4gImNmciIKKyAgICAgICAgICAgICIkczAiCisg
ICAgICAgIHdoZW4gImxyIgorICAgICAgICAgICAgIiRyYSIKKyAgICAgICAgd2hlbiAic3AiCisg
ICAgICAgICAgICAiJHNwIgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJl
Z2lzdGVyICN7bmFtZX0gZm9yIE1JUFMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAg
ZW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgRlBSZWdpc3RlcklECisgICAgZGVmIG1pcHNPcGVy
YW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3aGVuICJmdDAiLCAiZnIiCisgICAgICAg
ICAgICAiJGYwIgorICAgICAgICB3aGVuICJmdDEiCisgICAgICAgICAgICAiJGYyIgorICAgICAg
ICB3aGVuICJmdDIiCisgICAgICAgICAgICAiJGY0IgorICAgICAgICB3aGVuICJmdDMiCisgICAg
ICAgICAgICAiJGY2IgorICAgICAgICB3aGVuICJmdDQiCisgICAgICAgICAgICAiJGY4IgorICAg
ICAgICB3aGVuICJmdDUiCisgICAgICAgICAgICAiJGYxMCIKKyAgICAgICAgd2hlbiAiZmEwIgor
ICAgICAgICAgICAgIiRmMTIiCisgICAgICAgIHdoZW4gImZhMSIKKyAgICAgICAgICAgICIkZjE0
IgorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0g
Zm9yIE1JUFMgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitl
bmQKKworY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNl
ICJJbnZhbGlkIGltbWVkaWF0ZSAje3ZhbHVlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiBpZiB2
YWx1ZSA8IC0weDdmZmYgb3IgdmFsdWUgPiAweDdmZmYKKyAgICAgICAgIiN7dmFsdWV9IgorICAg
IGVuZAorZW5kCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAg
cmFpc2UgIkJhZCBvZmZzZXQgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgaWYgb2Zmc2V0LnZhbHVl
IDwgLTB4N2ZmZiBvciBvZmZzZXQudmFsdWUgPiAweDdmZmYKKyAgICAgICAgIiN7b2Zmc2V0LnZh
bHVlfSgje2Jhc2UubWlwc09wZXJhbmR9KSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBYnNvbHV0
ZUFkZHJlc3MKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIlVuY29udmVydGVk
IGFic29sdXRlIGFkZHJlc3MgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAor
CisjCisjIExvd2VyICdhbmQnIG1hc2tlZCBicmFuY2hlcworIworCitkZWYgbG93ZXJNSVBTQ29u
ZEJyYW5jaChsaXN0LCBjb25kT3AsIG5vZGUpCisgICAgaWYgbm9kZS5vcGVyYW5kcy5zaXplID09
IDIKKyAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kT3AsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVy
byIpLCBub2RlLm9wZXJhbmRzWy0xXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUuYW5ub3RhdGlvbikKKyAgICBlbHNpZiBub2RlLm9wZXJhbmRzLnNpemUgPT0gMworICAg
ICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgbGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYW5kaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2Rl
Lm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uZE9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG1wLCBTcGVjaWFsUmVn
aXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgZWxzZQorICAgICAg
ICByYWlzZSAiRXhwZWN0ZWQgMiBvciAzIG9wZXJhbmRzIGJ1dCBnb3QgI3tub2RlLm9wZXJhbmRz
LnNpemV9IGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKK2VuZAorCisjCisj
IExvd2VyaW5nIG9mIGJyYW5jaCBvcHMuIEZvciBleGFtcGxlOgorIworIyBiYWRkaXogZm9vLCBi
YXIsIGJhegorIworIyB3aWxsIGJlY29tZToKKyMKKyMgYWRkaSBmb28sIGJhcgorIyBieiBiYXoK
KyMKKworZGVmIG1pcHNMb3dlclNpbXBsZUJyYW5jaE9wcyhsaXN0KQorICAgIG5ld0xpc3QgPSBb
XQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNf
YT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24K
KyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gL15iKGFkZGl8
c3ViaXxvcml8YWRkcCkvCisgICAgICAgICAgICAgICAgb3AgPSAkMQorICAgICAgICAgICAgICAg
IGJjID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIGJyYW5jaCA9ICJiIiArIGJjCisK
KyAgICAgICAgICAgICAgICBjYXNlIG9wCisgICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJh
ZGRwIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJhZGRpIgorICAgICAgICAgICAgICAgIHdo
ZW4gInN1YmkiCisgICAgICAgICAgICAgICAgICAgIG9wID0gInN1YmkiCisgICAgICAgICAgICAg
ICAgd2hlbiAib3JpIgorICAgICAgICAgICAgICAgICAgICBvcCA9ICJvcmkiCisgICAgICAgICAg
ICAgICAgZW5kCisKKyAgICAgICAgICAgICAgICB6ZXJvID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygi
JHplcm8iKQorICAgICAgICAgICAgICAgIGlmIGJjID09ICJvIgorICAgICAgICAgICAgICAgICAg
ICBjYXNlIG9wCisgICAgICAgICAgICAgICAgICAgIHdoZW4gImFkZGkiCisgICAgICAgICAgICAg
ICAgICAgICAgICAjICBhZGR1ICRzMCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICMgIHhvciAkdDAsICRzMSwgJHMyCisgICAgICAgICAgICAgICAgICAgICAgICAjICBibHQgJHQw
LCAkemVybywgbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAs
ICRzMCwgJHMxCisgICAgICAgICAgICAgICAgICAgICAgICAjICBibHQgJHQwLCAkemVybywgb3Zl
cmZsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICMgbm8gb3ZlcmZsb3c6CisgICAgICAgICAg
ICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9k
ZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5l
dyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBub0Zsb3cg
PSBMb2NhbExhYmVsLnVuaXF1ZSgibm9mbG93IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
Rmxvd1JlZiA9IExvY2FsTGFiZWxSZWZlcmVuY2UubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9GbG93
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRy
XSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9k
ZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpbHQiLCBbdG1wLCB6ZXJvLCBub0Zs
b3dSZWZdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFt0ciwgbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgImJpbHQiLCBbdG1wLCB6ZXJvLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9GbG93CisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwg
W3RyLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAic3ViaSIK
KyAgICAgICAgICAgICAgICAgICAgICAgICMgIHN1YnUgJHMwLCAkczEsICRzMgorICAgICAgICAg
ICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICMgIGJnZSAkdDAsICR6ZXJvLCBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAg
ICAgIyAgeG9yICR0MCwgJHMwLCAkczEKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAk
dDAsICR6ZXJvLCBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdmVyZmxv
dzoKKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRy
ID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHplcm8gPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBub0Zsb3cgPSBMb2NhbExhYmVsLnVuaXF1ZSgibm9mbG93IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5vRmxvd1JlZiA9IExvY2FsTGFiZWxSZWZlcmVuY2UubmV3KG5vZGUu
Y29kZU9yaWdpbiwgbm9GbG93KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMV0sIG5v
ZGUub3BlcmFuZHNbMF0sIHRyXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbbm9k
ZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpZ3Rl
cSIsIFt0bXAsIHplcm8sIG5vRmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2Rl
Lm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5vZGUu
b3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cK
KyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgIm1vdmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAg
ICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG92d2VyZmxv
dyBhdCBvcmkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24u
bmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIG5vZGUub3BlcmFuZHNbMC4uMV0sIGFubm90YXRpb24p
CisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1sxXS5pc19hPyBBZGRyZXNzCisgICAgICAgICAg
ICAgICAgICAgICAgICBhZGRyID0gbm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAg
ICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImxv
YWRwIiwgW2FkZHIsIHRyXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJh
bmRzWzBdLCB0cl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzdG9yZXAiLCBbdHIsIGFkZHJdKQorICAgICAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ciA9IG5vZGUub3BlcmFu
ZHNbMV0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgb3AsIG5vZGUub3BlcmFuZHNbMC4uLTJdLCBhbm5vdGF0aW9uKQor
ICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBicmFuY2gsIFt0ciwgemVybywgbm9kZS5v
cGVyYW5kc1stMV1dKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAiYmlh
IiwgImJwYSIsICJiYmEiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0g
ImIiID8gInNsdHViIiA6ICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXSwg
bm9kZS5vcGVyYW5kc1swXV0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYm56IiwgW3RtcCwgU3BlY2lhbFJl
Z2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVu
ICJiaWFlcSIsICJicGFlcSIsICJiYmFlcSIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21wID0gbm9kZS5vcGNv
ZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9w
ZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJieiIsIFt0bXAs
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAg
ICAgICAgd2hlbiAiYmliIiwgImJwYiIsICJiYmIiCisgICAgICAgICAgICAgICAgdG1wID0gVG1w
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgY29tcCA9IG5vZGUu
b3Bjb2RlWzEsMV0gPT0gImIiID8gInNsdHViIiA6ICJzbHR1IgorICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9k
ZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXV0sIGFubm90YXRpb24pCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYm56Iiwg
W3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisg
ICAgICAgICAgICB3aGVuICJiaWJlcSIsICJicGJlcSIsICJiYmJlcSIKKyAgICAgICAgICAgICAg
ICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBj
b21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21w
LCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdXSwgYW5ub3RhdGlvbikK
KyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sICJieiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFu
ZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYnRpeiIsICJidHB6IiwgImJ0YnoiCisgICAgICAg
ICAgICAgICAgbG93ZXJNSVBTQ29uZEJyYW5jaChuZXdMaXN0LCAiYnoiLCBub2RlKQorICAgICAg
ICAgICAgd2hlbiAiYnRpbnoiLCAiYnRwbnoiLCAiYnRibnoiCisgICAgICAgICAgICAgICAgbG93
ZXJNSVBTQ29uZEJyYW5jaChuZXdMaXN0LCAiYm56Iiwgbm9kZSkKKyAgICAgICAgICAgIHdoZW4g
ImJ0aW8iLCAiYnRwbyIsICJidGJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQor
ICAgICAgICAgICAgd2hlbiAiYnRpcyIsICJidHBzIiwgImJ0YnMiCisgICAgICAgICAgICAgICAg
bG93ZXJNSVBTQ29uZEJyYW5jaChuZXdMaXN0LCAiYnMiLCBub2RlKQorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9
CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgU3BlY2lhbGl6YXRpb24gb2YgbG93ZXJpbmcgb2Yg
bWFsZm9ybWVkIEJhc2VJbmRleCBhZGRyZXNzZXMuCisjCisKK2NsYXNzIEJhc2VJbmRleAorICAg
IGRlZiByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNSZWN1cnNlKGxpc3QsIG5vZGUsICZibG9j
aykKKyAgICAgICAgaWYgc2NhbGVTaGlmdCA9PSAwCisgICAgICAgICAgICB0bXAwID0gVG1wLm5l
dyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
Y29kZU9yaWdpbiwgImFkZHAiLCBbYmFzZSwgaW5kZXgsIHRtcDBdKQorICAgICAgICAgICAgQWRk
cmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBvZmZz
ZXQudmFsdWUpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdG1wMCA9IFRtcC5uZXcoY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVP
cmlnaW4sICJsc2hpZnRpIiwgW2luZGV4LCBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIHNjYWxl
U2hpZnQpLCB0bXAwXSk7CisgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2Rl
T3JpZ2luLCAiYWRkcCIsIFtiYXNlLCB0bXAwXSkKKyAgICAgICAgICAgIEFkZHJlc3MubmV3KGNv
ZGVPcmlnaW4sIHRtcDAsIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgb2Zmc2V0LnZhbHVlKSk7
CisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXJpbmcgb2YgbWlzcGxhY2Vk
IGltbWVkaWF0ZXMgb2YgTUlQUyBzcGVjaWZpYyBpbnN0cnVjdGlvbnMuIEZvciBleGFtcGxlOgor
IworIyBzbHR1IHJlZywgNCwgMgorIworIyB3aWxsIGJlY29tZToKKyMKKyMgbW92ZSA0LCB0bXAK
KyMgc2x0dSByZWcsIHRtcCwgMgorIworCitkZWYgbWlwc0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRl
cyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9k
ZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ug
bm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gInNsdCIsICJzbHR1IiwgInNsdGIiLCAic2x0
dWIiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUK
KyAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIp
CisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSwgbm9kZS5hbm5vdGF0aW9u
KQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbbm9kZS5vcGVyYW5kc1swXSwgdG1wLCBub2RlLm9wZXJhbmRzWzJdXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5hbm5v
dGF0aW9uKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBub2RlCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdM
aXN0CitlbmQKKworIworIyBTcGVjaWFsaXphdGlvbiBvZiBsb3dlcmluZyBvZiBtaXNwbGFjZWQg
YWRkcmVzc2VzLgorIworCitkZWYgbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMo
bGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUg
fAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBwb3N0SW5z
dHJ1Y3Rpb25zID0gW10KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24K
KyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImptcCIKKyAg
ICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAg
ICAgICAgIHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRyYSIpCisgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdp
biwgImxvYWRpIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUs
IFt0bXBdKQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jpc2NBc1JlZ2lzdGVyKG5ld0xpc3Qs
IHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHNbMF0sICJwIiwgZmFsc2UpXSkKKyAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICAgICAg
cmVzdG9yZUdQID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5h
ZGRyZXNzPworICAgICAgICAgICAgICAgICAgICB0bXAgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
dDkiKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
Lm9wZXJhbmRzWzBdLmNvZGVPcmlnaW4sICJsb2FkcCIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBd
KQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAgICAgICAgICAg
IGVsc2lmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gTGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAg
ICAgICAgICAgdG1wID0gbm9kZS5vcGVyYW5kc1swXQorICAgICAgICAgICAgICAgICAgICByZXN0
b3JlR1AgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMF0ucmVn
aXN0ZXI/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0
OSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
b3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkK
KyAgICAgICAgICAgICAgICAgICAgcmVzdG9yZUdQID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IG5vZGUub3BlcmFuZHNbMF0KKyAgICAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbdG1wXSkKKyAgICAgICAgICAgICAgICBpZiBy
ZXN0b3JlR1AKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibW92ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtTcGVjaWFsUmVnaXN0ZXIubmV3KCIkczQiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygi
JGdwIildKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAic2x0IiwgInNs
dHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUu
b3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2NB
c1JlZ2lzdGVycyhuZXdMaXN0LCBbXSwgbm9kZS5vcGVyYW5kcywgImkiKSkKKyAgICAgICAgICAg
IHdoZW4gInNsdHViIiwgInNsdGIiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJpc2NBc1JlZ2lzdGVycyhuZXdMaXN0LCBbXSwgbm9kZS5vcGVyYW5kcywg
ImIiKSkKKyAgICAgICAgICAgIHdoZW4gImJ6IiwgImJueiIsICJicyIsICJibyIKKyAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5l
d0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBu
ZXdMaXN0ICs9IHBvc3RJbnN0cnVjdGlvbnMKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3
TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIwor
IyBMb3dlcmluZyBjb21wYXJlcyBhbmQgdGVzdHMuCisjCisKK2RlZiBtaXBzTG93ZXJDb21wYXJl
VGVtcGxhdGUobGlzdCwgbm9kZSwgb3BDbXAsIG9wTW92KQorICAgIHRtcDAgPSBUbXAubmV3KG5v
ZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICB0bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92
ZSIsIFtJbW1lZGlhdGUubmV3KG5pbCwgMCksIG5vZGUub3BlcmFuZHNbMl1dKQorICAgIGxpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3BDbXAsIFtub2RlLm9wZXJhbmRz
WzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXAwXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAxKSwgdG1wMV0p
CisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcE1vdiwgW25v
ZGUub3BlcmFuZHNbMl0sIHRtcDEsIHRtcDBdKQorZW5kCisKK2RlZiBtaXBzTG93ZXJDb21wYXJl
cyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9k
ZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIGNhc2Ug
bm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gImNpZXEiLCAiY3BlcSIsICJjYmVxIgorICAg
ICAgICAgICAgICAgIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAic3Vi
cCIsICJtb3Z6IikKKyAgICAgICAgICAgIHdoZW4gImNpbmVxIiwgImNwbmVxIiwgImNibmVxIgor
ICAgICAgICAgICAgICAgIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAi
c3VicCIsICJtb3ZuIikKKyAgICAgICAgICAgIHdoZW4gInRpeiIsICJ0YnoiLCAidHB6IgorICAg
ICAgICAgICAgICAgIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAiYW5k
cCIsICJtb3Z6IikKKyAgICAgICAgICAgIHdoZW4gInRpbnoiLCAidGJueiIsICJ0cG56IgorICAg
ICAgICAgICAgICAgIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShuZXdMaXN0LCBub2RlLCAiYW5k
cCIsICJtb3ZuIikKKyAgICAgICAgICAgIHdoZW4gInRpbyIsICJ0Ym8iLCAidHBvIgorICAgICAg
ICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImFuZHAiLCBb
bm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAg
ICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbHQiLCBbbm9kZS5v
cGVyYW5kc1syXSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgdG1wXSkKKyAgICAgICAg
ICAgIHdoZW4gInRpcyIsICJ0YnMiLCAidHBzIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImFuZHAiLCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9k
ZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbHQiLCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCIkemVybyIpXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAg
ICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QK
K2VuZAorCisjCisjIExlYSBzdXBwb3J0LgorIworCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIG1p
cHNFbWl0TGVhKGRlc3RpbmF0aW9uKQorICAgICAgICBpZiBkZXN0aW5hdGlvbiA9PSBiYXNlCisg
ICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICN7ZGVzdGluYXRpb24ubWlwc09wZXJhbmR9LCAj
e29mZnNldC52YWx1ZX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRk
aXUgI3tkZXN0aW5hdGlvbi5taXBzT3BlcmFuZH0sICN7YmFzZS5taXBzT3BlcmFuZH0sICN7b2Zm
c2V0LnZhbHVlfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworIworIyBBZGQgUElDIGNv
bXBhdGlibGUgaGVhZGVyIGNvZGUgdG8gcHJvbG9ndWUvZW50cnkgcnV0aW5zLgorIworCitkZWYg
bWlwc0FkZFBJQ0NvZGUobGlzdCkKKyAgICBteUxpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7Cisg
ICAgICAgIHwgbm9kZSB8CisgICAgICAgIG15TGlzdCA8PCBub2RlCisgICAgICAgIGlmIG5vZGUu
aXNfYT8gTGFiZWwKKyAgICAgICAgICAgIGlmIC9fcHJvbG9ndWUkLy5tYXRjaChub2RlLm5hbWUp
IHx8IC9eX2xsaW50X2Z1bmN0aW9uXy8ubWF0Y2gobm9kZS5uYW1lKQorICAgICAgICAgICAgICAg
ICMgRnVuY3Rpb25zIGNhbGxlZCBmcm9tIHRyYW1wb2xpbmUvSklUIGNvZGVzLgorICAgICAgICAg
ICAgICAgIG15TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicGljaGRy
IiwgW10pCisgICAgICAgICAgICBlbHNpZiAvX2xsaW50X29wX2NhdGNoLy5tYXRjaChub2RlLm5h
bWUpCisgICAgICAgICAgICAgICAgIyBFeGNlcHRpb24gY2FjdGNoZXIgZW50cnkgcG9pbnQgZnVu
Y3Rpb24uCisgICAgICAgICAgICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJwaWNoZHJyYSIsIFtdKQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAor
ICAgIH0KKyAgICBteUxpc3QKK2VuZAorCisjCisjIEFjdHVhbCBsb3dlcmluZyBjb2RlIGZvbGxv
d3MuCisjCisKK2NsYXNzIFNlcXVlbmNlCisgICAgZGVmIGdldE1vZGlmaWVkTGlzdE1JUFMKKyAg
ICAgICAgcmVzdWx0ID0gQGxpc3QKKworICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25s
eSBzZWUgaW5zdHJ1Y3Rpb25zIGFuZCBsYWJlbHMuCisgICAgICAgIHJlc3VsdC5lYWNoIHsKKyAg
ICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICB1bmxlc3Mgbm9kZS5pc19hPyBJbnN0cnVj
dGlvbiBvcgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExhYmVsIG9yCisgICAgICAg
ICAgICAgICAgICAgIG5vZGUuaXNfYT8gTG9jYWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAg
ICBub2RlLmlzX2E/IFNraXAKKyAgICAgICAgICAgICAgICByYWlzZSAiVW5leHBlY3RlZCAje25v
ZGUuaW5zcGVjdH0gYXQgI3tub2RlLmNvZGVPcmlnaW59IgorICAgICAgICAgICAgZW5kCisgICAg
ICAgIH0KKworICAgICAgICByZXN1bHQgPSBtaXBzQWRkUElDQ29kZShyZXN1bHQpCisgICAgICAg
IHJlc3VsdCA9IG1pcHNMb3dlclNpbXBsZUJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3Vs
dCA9IHJpc2NMb3dlckhhcmRCcmFuY2hPcHMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNj
TG93ZXJTaGlmdE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1l
ZEFkZHJlc3NlcyhyZXN1bHQpIHsKKyAgICAgICAgICAgIHwgbm9kZSwgYWRkcmVzcyB8CisgICAg
ICAgICAgICBpZiBhZGRyZXNzLmlzX2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAoLTB4ZmZm
Zi4uMHhmZmZmKS5pbmNsdWRlPyBhZGRyZXNzLm9mZnNldC52YWx1ZQorICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAg
ICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQor
ICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKKyAg
ICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCisgICAg
ICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMocmVzdWx0LCAtMHhmZmZm
Li4weGZmZmYpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3Nlc0Nv
bW1vbihyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlck1pc3BsYWNlZEFkZHJlc3Nl
c1NwZWNpZmljKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0ZXJSZXVz
ZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlckNvbXBhcmVzKHJlc3VsdCkKKyAg
ICAgICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpncHIs
IE1JUFNfVEVNUF9HUFJTKQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBv
cmFyaWVzKHJlc3VsdCwgOmZwciwgTUlQU19URU1QX0ZQUlMpCisKKyAgICAgICAgcmV0dXJuIHJl
c3VsdAorICAgIGVuZAorZW5kCisKK2RlZiBtaXBzT3BlcmFuZHMob3BlcmFuZHMpCisgICAgb3Bl
cmFuZHMubWFwe3x2fCB2Lm1pcHNPcGVyYW5kfS5qb2luKCIsICIpCitlbmQKKworZGVmIG1pcHNG
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpCisgICAgbWlwc09wZXJhbmRzKFtvcGVyYW5kc1stMV1d
ICsgb3BlcmFuZHNbMC4uLTJdKQorZW5kCisKK2RlZiBnZXRNSVBTT3Bjb2RlKG9wY29kZSwgc3Vm
Zml4KQorCitlbmQKKworZGVmIGVtaXRNSVBTQ29tcGFjdChvcGNvZGUsIG9wY29kZWksIG9wZXJh
bmRzKQorICAgIHBvc3RmaXggPSAiIgorICAgIGlmIG9wY29kZSA9PSAic3ViIgorICAgICAgICBp
ZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQi
CisgICAgICAgICAgICBvcGVyYW5kc1swXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMF0uY29k
ZU9yaWdpbiwgLTEgKiBvcGVyYW5kc1swXS52YWx1ZSkKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNb
MV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICBvcGNvZGUgPSAiYWRkIgorICAgICAgICAg
ICAgb3BlcmFuZHNbMV0gPSBJbW1lZGlhdGUubmV3KG9wZXJhbmRzWzFdLmNvZGVPcmlnaW4sIC0x
ICogb3BlcmFuZHNbMV0udmFsdWUpCisgICAgICAgIGVuZAorICAgICAgICBwb3N0Zml4ID0gInUi
CisgICAgZWxzaWYgb3Bjb2RlID09ICJhZGQiCisgICAgICAgIHBvc3RmaXggPSAidSIKKyAgICBl
bmQKKyAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNf
YT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9
ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmlzX2E/IElt
bWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAje29w
ZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0udmFsdWV9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7
b3Bjb2RlfSN7cG9zdGZpeH0gI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0g
MgorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgIGlm
IG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29w
Y29kZX1pI3twb3N0Zml4fSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNl
CisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0gI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBT
U2hpZnRDb21wYWN0KG9wY29kZSwgb3BlcmFuZHMpCisgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAz
CisgICAgICAgIGlmIChvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUpCisgICAgICAgICAgICAk
YXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0udmFsdWV9IgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfXYgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9w
ZXJhbmRzKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9w
ZXJhbmRzLnNpemUgPT0gMgorICAgICAgICBpZiBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAg
ICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9diAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9Igor
ICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRz
WzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0udmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFMob3Bj
b2RlLCBvcGVyYW5kcykKKyAgICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgJGFzbS5w
dXRzICIje29wY29kZX0gI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgZWxz
ZQorICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgICRhc20u
cHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgZW5kCitlbmQK
KworZGVmIGVtaXRNSVBTRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgbmVnLCBvcGVyYW5kcykK
KyAgICAkYXNtLnB1dHMgImMuI3ticmFuY2hPcGNvZGV9LmQgI3ttaXBzT3BlcmFuZHMob3BlcmFu
ZHNbMC4uMV0pfSIKKyAgICBpZiAoIW5lZykKKyAgICAgICAgJGFzbS5wdXRzICJiYzF0ICN7b3Bl
cmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJiYzFmICN7
b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9u
CisgICAgZGVmIGxvd2VyTUlQUworICAgICAgICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmlu
ZworICAgICAgICBjYXNlIG9wY29kZQorICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRk
aXMiCisgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlz
X2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5y
ZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMl0ucmVnaXN0
ZXI/CisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0udmFsdWUgPT0gMCAjYW5kIHN1ZmZp
eC5lbXB0eT8KKyAgICAgICAgICAgICAgICAgICAgdW5sZXNzIG9wZXJhbmRzWzFdID09IG9wZXJh
bmRzWzJdCisgICAgICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAiYWRkaXUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFu
ZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFd
LnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1syXS5yZWdp
c3Rlcj8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZHUgI3ttaXBzRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgb3Bl
cmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHVubGVzcyBJbW1l
ZGlhdGUubmV3KG5pbCwgMCkgPT0gb3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAiYWRkaXUgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7bWlwc0ZsaXBw
ZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5k
CisgICAgICAgIHdoZW4gImFuZGkiLCAiYW5kcCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFj
dCgiYW5kIiwgImFuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJvcmkiLCAib3JwIgorICAg
ICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJvciIsICJvcnIiLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAib3JpcyIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgib3IiLCAib3JycyIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJ4b3JpIiwgInhvcnAiCisgICAgICAgICAgICBlbWl0TUlQ
U0NvbXBhY3QoInhvciIsICJlb3IiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibHNoaWZ0aSIs
ICJsc2hpZnRwIgorICAgICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNsbCIsIG9wZXJh
bmRzKQorICAgICAgICB3aGVuICJyc2hpZnRpIiwgInJzaGlmdHAiCisgICAgICAgICAgICBlbWl0
TUlQU1NoaWZ0Q29tcGFjdCgic3JhIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInVyc2hpZnRp
IiwgInVyc2hpZnRwIgorICAgICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNybCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCisgICAgICAgICAgICBlbWl0TUlQ
UygibXVsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInN1YmkiLCAic3VicCIsICJzdWJpcyIK
KyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgic3ViIiwgInN1YnMiLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJuZWd1ICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAg
ICAgICAgd2hlbiAibm90aSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9yICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgJHplcm8iCisgICAg
ICAgIHdoZW4gImxvYWRpIiwgImxvYWRpcyIsICJsb2FkcCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAibHcgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0
b3JlaSIsICJzdG9yZXAiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7bWlwc09wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRiIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJsYnUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxv
YWRicyIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGIgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9w
ZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
c2IgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGgiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxodSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAibG9hZGhzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsaCAje21pcHNG
bGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVoIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJzaHYgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAg
d2hlbiAibG9hZGQiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxkYzEgI3ttaXBzRmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic2RjMSAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJh
ZGRkIgorICAgICAgICAgICAgZW1pdE1JUFMoImFkZC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImRpdmQiCisgICAgICAgICAgICBlbWl0TUlQUygiZGl2LmQiLCBvcGVyYW5kcykKKyAgICAg
ICAgd2hlbiAic3ViZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJzdWIuZCIsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJtdWxkIgorICAgICAgICAgICAgZW1pdE1JUFMoIm11bC5kIiwgb3BlcmFu
ZHMpCisgICAgICAgIHdoZW4gInNxcnRkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzcXJ0LmQg
I3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImNpMmQiCisg
ICAgICAgICAgICByYWlzZSAiaW52YWxpZCBvcHMgb2YgI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kc1sxXS5pc19hPyBGUFJlZ2lzdGVySUQgYW5k
IG9wZXJhbmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3Bl
cmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiY3Z0LmQudyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImJkZXEiCisgICAgICAgICAg
ICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdo
ZW4gImJkbmVxIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVlcSIsIHRydWUs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0IgorICAgICAgICAgICAgZW1pdE1JUFNEb3Vi
bGVCcmFuY2goInVsZSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXEiCisg
ICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWx0IiwgdHJ1ZSwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJkbHQiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0
IiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBl
bWl0TUlQU0RvdWJsZUJyYW5jaCgib2xlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJiZGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWVxIiwgZmFsc2Us
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZG5lcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNE
b3VibGVCcmFuY2goImVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3R1biIK
KyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbGUiLCB0cnVlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmRndGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5j
aCgib2x0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHR1biIKKyAgICAgICAg
ICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gImJkbHRlcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIs
IGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYnRkMmkiCisgICAgICAgICAgICAjIEZJ
WE1FOiBtYXkgYmUgYSBnb29kIGlkZWEgdG8ganVzdCBnZXQgcmlkIG9mIHRoaXMgaW5zdHJ1Y3Rp
b24sIHNpbmNlIHRoZSBpbnRlcnByZXRlcgorICAgICAgICAgICAgIyBjdXJyZW50bHkgZG9lcyBu
b3QgdXNlIGl0LgorICAgICAgICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlz
IG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInRkMmkiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImN2dC53LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30s
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMx
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1Npbmds
ZUxvfSIKKyAgICAgICAgd2hlbiAiYmNkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC53
LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiY3Z0LmQudyAje01JUFNfU0NSQVRDSF9GUFIubWlwc09wZXJhbmR9LCAje01JUFNf
U0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJh
bmNoKCJlcSIsIHRydWUsIFtNSVBTX1NDUkFUQ0hfRlBSLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNb
Ml1dKQorICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICR6ZXJvLCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAibW92ZHoi
CisgICAgICAgICAgICAjIEZJWE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4K
KyAgICAgICAgICAgIHJhaXNlICJNSVBTIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0
LCAje2NvZGVPcmlnaW59IgorICAgICAgICB3aGVuICJwb3AiCisgICAgICAgICAgICAkYXNtLnB1
dHMgImx3ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgICAgICAk
YXNtLnB1dHMgImFkZGl1ICRzcCwgJHNwLCA0IgorICAgICAgICB3aGVuICJwdXNoIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJhZGRpdSAkc3AsICRzcCwgLTQiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInN3ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgIHdoZW4g
Im1vdmUiLCAic3hpMnAiLCAienhpMnAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICBtaXBzTW92ZUltbWVkaWF0ZShvcGVyYW5kc1sw
XS52YWx1ZSwgb3BlcmFuZHNbMV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3ZlICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIHdoZW4gIm5vcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9w
IgorICAgICAgICB3aGVuICJiaWVxIiwgImJwZXEiLCAiYmJlcSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAiYmVxICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0u
YXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaW5lcSIsICJicG5lcSIsICJiYm5lcSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiYm5lICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7
b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWd0IiwgImJwZ3QiLCAiYmJn
dCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmd0ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAu
LjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWd0ZXEiLCAi
YnBndGVxIiwgImJiZ3RlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmdlICN7bWlwc09wZXJh
bmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3
aGVuICJiaWx0IiwgImJwbHQiLCAiYmJsdCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmx0ICN7
bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJiaWx0ZXEiLCAiYnBsdGVxIiwgImJibHRlcSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiYmxlICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNb
Ml0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICBpZiBvcGVyYW5k
c1swXS5sYWJlbD8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImogI3tvcGVyYW5kc1swXS5h
c21MYWJlbH0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJq
ciAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3
aGVuICJjYWxsIgorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0ubGFiZWw/CisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJqYWwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqYWxyICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImJyZWFrIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJicmVhayIKKyAgICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJqciAkcmEiCisgICAgICAgIHdoZW4gImNpYSIsICJjcGEiLCAiY2JhIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgIHdoZW4gImNpYWVxIiwgImNwYWVxIiwgImNiYWVxIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpYiIs
ICJjcGIiLCAiY2JiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5t
aXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpYmVxIiwgImNwYmVxIiwgImNiYmVxIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisg
ICAgICAgIHdoZW4gImNpZ3QiLCAiY3BndCIsICJjYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lndGVxIiwg
ImNwZ3RlcSIsICJjYmd0ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRz
WzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNb
Ml0ubWlwc09wZXJhbmR9LCAxIgorICAgICAgICB3aGVuICJjaWx0IiwgImNwbHQiLCAiY2JsdCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisg
ICAgICAgIHdoZW4gImNpbHRlcSIsICJjcGx0ZXEiLCAiY2JsdGVxIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAi
cGVlayIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fSgkc3ApIgorICAgICAgICB3aGVuICJwb2tlIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJzdyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS52YWx1ZSAqIDR9KCRzcCkiCisgICAgICAgIHdoZW4gImZpaTJkIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzJdLm1pcHNTaW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUhpfSIKKyAgICAg
ICAgd2hlbiAiZmQyaWkiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibWZjMSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5taXBzU2luZ2xlSGl9IgorICAgICAgICB3aGVuICJibyIKKyAgICAgICAgICAgICRhc20ucHV0
cyAiYmd0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJzIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJibHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hl
biAiYnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzBdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgICAgICB3aGVuICJibnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJuZSAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAiCisgICAgICAgICAg
ICBvcGVyYW5kc1swXS5taXBzRW1pdExlYShvcGVyYW5kc1sxXSkKKyAgICAgICAgd2hlbiAic211
bGxpIgorICAgICAgICAgICAgcmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211
bGwgaW4gI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVy
YW5kcy5sZW5ndGggPT0gNAorICAgICAgICAgICAgJGFzbS5wdXRzICJtdWx0ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibWZsbyAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibWZoaSAje29wZXJhbmRzWzNdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hl
biAibW92eiIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92eiAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJtb3ZuIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Zu
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNsdCIsICJzbHRiIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAg
ICAgICAgd2hlbiAic2x0dSIsICJzbHR1YiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJwaWNoZHIiCisgICAgICAg
ICAgICAkYXNtLnB1dFN0cigiT0ZGTElORV9BU01fQ1BMT0FEKCQyNSkiKQorICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3ZlICRzNCwgJGdwIgorICAgICAgICB3aGVuICJwaWNoZHJyYSIKKyAgICAg
ICAgICAgICRhc20ucHV0U3RyKCJPRkZMSU5FX0FTTV9DUExPQUQoJDMxKSIpCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdmUgJHM0LCAkZ3AiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJh
aXNlICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9Igor
ICAgICAgICBlbmQKKyAgICBlbmQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vcmlzYy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L3Jpc2MucmIKaW5kZXggNDRiNGRiZC4uNDkxYTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9yaXNjLnJiCkBAIC02MywxMCArNjMsNiBAQCBkZWYgcmlzY0xvd2VyU2ltcGxl
QnJhbmNoT3BzKGxpc3QpCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5kc1sw
Li4tMl0sIGFubm90YXRpb24pCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCBicmFuY2gsIFtub2RlLm9wZXJhbmRzWy0xXV0pCi0gICAg
ICAgICAgICB3aGVuICdibXVsaXMnLCAnYm11bHonLCAnYm11bG56JwotICAgICAgICAgICAgICAg
IGNvbmRpdGlvbiA9ICR+LnBvc3RfbWF0Y2gKLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4t
Ml0sIGFubm90YXRpb24pCi0gICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAiYnRpIiArIGNvbmRpdGlvbiwgW25vZGUub3BlcmFuZHNbLTJd
LCBub2RlLm9wZXJhbmRzWy0xXV0pCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBub2RlCiAgICAgICAgICAgICBlbmQKQEAgLTkzLDEyICs4OSwyMiBAQCBkZWYg
cmlzY0xvd2VySGFyZEJyYW5jaE9wcyhsaXN0KQogICAgIG5ld0xpc3QgPSBbXQogICAgIGxpc3Qu
ZWFjaCB7CiAgICAgICAgIHwgbm9kZSB8Ci0gICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rp
b24gYW5kIG5vZGUub3Bjb2RlID09ICJibXVsaW8iCi0gICAgICAgICAgICB0bXAxID0gVG1wLm5l
dyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCi0gICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIDpncHIpCi0gICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVy
YW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0sIG5vZGUuYW5ub3RhdGlvbikKLSAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInJzaGlm
dGkiLCBbbm9kZS5vcGVyYW5kc1stMl0sIEltbWVkaWF0ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCAz
MSksIHRtcDJdKQotICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAiYmluZXEiLCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5kc1stMV1dKQorICAg
ICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBhbm5vdGF0aW9uID0g
bm9kZS5hbm5vdGF0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAg
ICB3aGVuICAiYm11bGlvIgorICAgICAgICAgICAgICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29k
ZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhub2RlLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAic211bGxpIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFu
ZHNbMV0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcDFdLCBub2RlLmFubm90YXRpb24pCisgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicnNo
aWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRlLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDMxKSwgdG1wMl0pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAiYmluZXEiLCBbdG1wMSwgdG1wMiwgbm9kZS5vcGVyYW5kc1stMV1d
KQorICAgICAgICAgICAgd2hlbiAvXmJtdWxpLworICAgICAgICAgICAgICAgIGNvbmRpdGlvbiA9
ICR+LnBvc3RfbWF0Y2gKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRp
b24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAiYnRpIiArIGNvbmRpdGlvbiwgW25vZGUub3BlcmFuZHNbLTJdLCBub2RlLm9wZXJh
bmRzWy0xXV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgICAgICBlbmQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbmV3TGlzdCA8
PCBub2RlCiAgICAgICAgIGVuZApAQCAtNDQ3LDcgKzQ1Myw3IEBAIGRlZiByaXNjQXNSZWdpc3Rl
cnMocHJlTGlzdCwgcG9zdExpc3QsIG9wZXJhbmRzLCBzdWZmaXgpCiAgICAgbmV3T3BlcmFuZHMK
IGVuZAogCi1kZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCitkZWYgcmlzY0xv
d2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9uKGxpc3QpCiAgICAgbmV3TGlzdCA9IFtdCiAgICAg
bGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKQEAgLTQ4Myw2ICs0ODksMjUgQEAgZGVmIHJp
c2NMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhsaXN0KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJpc2NBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rp
b25zLCBub2RlLm9wZXJhbmRzLCAiZCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFubm90YXRpb24pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIG5ld0xpc3Qg
Kz0gcG9zdEluc3RydWN0aW9ucworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8
IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCitkZWYgcmlzY0xv
d2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAg
ICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IElu
c3RydWN0aW9uCisgICAgICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KKyAgICAgICAgICAg
IGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNv
ZGUKICAgICAgICAgICAgIHdoZW4gImptcCIsICJjYWxsIgogICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGYy
ZmQzYjAuLmUzMWU1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtOTI3LDcgKzkyNyw3IEBACiAgICAgJiYg
RU5BQkxFKEpJVCkgXAogICAgICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSkgXAogICAgICYm
IChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShRVCkpIFwKLSAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9U
SFVNQjIpKQorICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKE1JUFMpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179919</attachid>
            <date>2012-12-18 04:11:34 -0800</date>
            <delta_ts>2013-01-04 09:18:34 -0800</delta_ts>
            <desc>LLInt implementation for MIPS reusing risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>57396</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE1MjdhMjkuLmE5MDgyOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEyLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OkpJVFRo
dW5rcyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5oOgorICAgICAg
ICAoSklUU3RhY2tGcmFtZSk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmln
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICog
b2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9taXBzLnJi
OiBBZGRlZC4KKyAgICAgICAgKiBvZmZsaW5lYXNtL3Jpc2MucmI6CisKIDIwMTItMTItMTcgIEdl
b2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb25zdGFudCBmb2xk
ICF7bnVtYmVyfSBpbiB0aGUgcGFyc2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCAzYWIyNTUzLi4xYjFhMTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmgKQEAgLTEzMjIsNyArMTMyMiw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQganVtcChS
ZWdpc3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmpyKHRhcmdldCk7
CisgICAgICAgIG1vdmUodGFyZ2V0LCBNSVBTUmVnaXN0ZXJzOjp0OSk7CisgICAgICAgIG1fYXNz
ZW1ibGVyLmpyKE1JUFNSZWdpc3RlcnM6OnQ5KTsKICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApp
bmRleCBmYjJmMDE5Li5iMWFmMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKQEAgLTQ3LDYgKzQ3LDE4IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisj
aWYgQ1BVKE1JUFMpCisjaWYgV1RGX01JUFNfUElDCisjZGVmaW5lIExPQURfRlVOQ1RJT05fVE9f
VDkoZnVuY3Rpb24pIFwKKyAgICAgICAgIi5zZXQgbm9yZW9yZGVyIiAiXG4iIFwKKyAgICAgICAg
Ii5jcGxvYWQgJDI1IiAiXG4iIFwKKyAgICAgICAgIi5zZXQgcmVvcmRlciIgIlxuIiBcCisgICAg
ICAgICJsYSAkdDksICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiXG4iCisjZWxzZQorI2Rl
ZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSAiIiAiXG4iCisjZW5kaWYKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKICNpZiBDT01QSUxFUihHQ0MpICYmIENQVShYODZf
NjQpCkBAIC0yMDEsNiArMjEzLDUyIEBACiAgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1
bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAogICAgICk7CiAKKyNlbGlmIENPTVBJ
TEVSKEdDQykgJiYgQ1BVKE1JUFMpCisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JF
VFVSTl9BRERSRVNTX0UoZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIg
XAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURF
X1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoi
ICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRy
ZXNzKSBcCisgICAgICAgICJtb3ZlICRhMSwgJHJhIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NB
TF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsK
KworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUNJKGZ1bmN0
aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lN
Qk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJc
biIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAgICAibW92
ZSAkYTMsICRyYSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9u
KSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05f
V1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VKSShmdW5jdGlvbikgXAorICAgIGFzbSggXAor
ICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24p
ICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RS
SU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlv
biMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjAoJHNwKSIgIlxuIiBc
CisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJl
c3MiICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVS
Tl9BRERSRVNTX0VKQ0koZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQiICJcbiIg
XAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURF
X1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIjoi
ICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1cm5BZGRy
ZXNzKSBcCisgICAgICAgICJzdyAkcmEsIDI0KCRzcCkiICJcbiIgXAorICAgICAgICAiYiAiIExP
Q0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICAp
OworCiAjZW5kaWYKIAogI2RlZmluZSBQX0ZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQURE
UkVTU19FKGZ1bmN0aW9uKSBcCkBAIC0xNjIzLDYgKzE2ODEsMTcgQEAgU1lNQk9MX1NUUklORyhn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgogICAgICJtb3YgcjAsIHI1IiAiXG4iCiAg
ICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3Rh
dGUpICJcbiIKICk7CisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShNSVBTKQorYXNtKAorIi50
ZXh0IiAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVl
KSAiXG4iCitISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCitTWU1CT0xf
U1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCisgICAgTE9BRF9GVU5DVElP
Tl9UT19UOShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkKKyAgICAibHcgJHMw
LCAtNDAoJHMwKSIgIlxuIgorICAgICJtb3ZlICRhMCwgJHMwIiAiXG4iCisgICAgImIgIiBMT0NB
TF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKKyk7
CiAjZW5kaWYKIAogZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZB
TFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShFeGVjU3RhdGUq
IGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IGFkMDU4YWUu
LmNjZWViZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0yODAs
MTEgKzI4MCwxMyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgUFJFU0VSVkVEX1MwX09GRlNFVCAg
ICAgICAgIDY0CiAjZGVmaW5lIFBSRVNFUlZFRF9TMV9PRkZTRVQgICAgICAgICA2OAogI2RlZmlu
ZSBQUkVTRVJWRURfUzJfT0ZGU0VUICAgICAgICAgNzIKLSNkZWZpbmUgUFJFU0VSVkVEX1JFVFVS
Tl9BRERSRVNTX09GRlNFVCA3NgotI2RlZmluZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQg
ODAKLSNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgIDg0Ci0jZGVmaW5lIEdMT0JB
TF9EQVRBX09GRlNFVCAgICAgICAgIDEwMAotI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAg
ICAgICAxMDQKKyNkZWZpbmUgUFJFU0VSVkVEX1MzX09GRlNFVCAgICAgICAgIDc2CisjZGVmaW5l
IFBSRVNFUlZFRF9TNF9PRkZTRVQgICAgICAgICA4MAorI2RlZmluZSBQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUIDg0CisjZGVmaW5lIFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4
OAorI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNFVCAgICAgICAgOTIKKyNkZWZpbmUgR0xPQkFM
X0RBVEFfT0ZGU0VUICAgICAgICAgMTA4CisjZGVmaW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAg
ICAgIDExMgogI2VsaWYgQ1BVKFNINCkKICNkZWZpbmUgU1lNQk9MX1NUUklORyhuYW1lKSAjbmFt
ZQogLyogY29kZSAocjQpLCBKU1N0YWNrKiAocjUpLCBDYWxsRnJhbWUqIChyNiksIHZvaWQqIHVu
dXNlZDEgKHI3KSwgdm9pZCogdW51c2VkMihzcCksIEpTR2xvYmFsRGF0YSAoc3ApKi8KQEAgLTQ1
MSw2ICs0NTMsOCBAQCBhc20gKAogU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiOiIgIlxu
IgogICAgICJhZGRpdSAkMjksJDI5LC0iIFNUUklOR0laRV9WQUxVRV9PRihTVEFDS19MRU5HVEgp
ICJcbiIKICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRV
Uk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAkMjAsIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgInN3ICAg
ICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJc
biIKICAgICAic3cgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZT
RVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1MxX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQxNiwiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKQEAgLTQ2NywxMiAr
NDcxLDE3IEBAIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAibHcg
ICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIg
IlxuIgogICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09G
RlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQ
UkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAg
ICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAi
XG4iCiAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAgICAg
ImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCiAi
LnNldCByZW9yZGVyIiAiXG4iCiAiLnNldCBtYWNybyIgIlxuIgogIi5lbmQgIiBTWU1CT0xfU1RS
SU5HKGN0aVRyYW1wb2xpbmUpICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVRyYW1w
b2xpbmVFbmQpICJcbiIKK0hJREVfU1lNQk9MKGN0aVRyYW1wb2xpbmVFbmQpICJcbiIKK1NZTUJP
TF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSAoCkBAIC00ODUs
OCArNDk0LDggQEAgYXNtICgKICIuZW50ICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBv
bGluZSkgIlxuIgogU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIK
ICNpZiBXVEZfTUlQU19QSUMKLSAgICAibHcgICAgJDI4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
RVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIgogIi5zZXQgbWFjcm8iICJcbiIKKyIuY3Bs
b2FkICQzMSIgIlxuIgogICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJv
dykgIlxuIgogIi5zZXQgbm9tYWNybyIgIlxuIgogICAgICJiYWwgIiBTWU1CT0xfU1RSSU5HKGN0
aV92bV90aHJvdykgIlxuIgpAQCAtNDk4LDYgKzUwNyw4IEBAIFNZTUJPTF9TVFJJTkcoY3RpVk1U
aHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNUUklOR0laRV9WQUxV
RV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE3LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigk
MjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMzEsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkp
IiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjksJDI5LCIgU1RSSU5H
SVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtNTE4LDYgKzUyOSw4IEBAIFNZTUJP
TF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICJcbiIKICAgICAibHcgICAgJDE2LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAg
ICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MxX09GRlNFVCkgIigk
MjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURf
UzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJsdyAgICAkMjAsIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAg
Imx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAgICAgImFkZGl1ICQy
OSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4iCkBAIC04MTUsNiAr
ODI4LDggQEAgSklUVGh1bmtzOjpKSVRUaHVua3MoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQog
ICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZl
ZFMwKSA9PSBQUkVTRVJWRURfUzBfT0ZGU0VUKTsKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9G
KHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBwcmVzZXJ2ZWRTMSkgPT0gUFJFU0VSVkVEX1MxX09GRlNF
VCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJl
c2VydmVkUzIpID09IFBSRVNFUlZFRF9TMl9PRkZTRVQpOworICAgIEFTU0VSVChPQkpFQ1RfT0ZG
U0VUT0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIHByZXNlcnZlZFMzKSA9PSBQUkVTRVJWRURfUzNf
T0ZGU0VUKTsKKyAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1l
LCBwcmVzZXJ2ZWRTNCkgPT0gUFJFU0VSVkVEX1M0X09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgcHJlc2VydmVkUmV0dXJuQWRkcmVzcykg
PT0gUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCk7CiAgICAgQVNTRVJUKE9CSkVDVF9P
RkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdGh1bmtSZXR1cm5BZGRyZXNzKSA9PSBUSFVO
S19SRVRVUk5fQUREUkVTU19PRkZTRVQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0Yoc3Ry
dWN0IEpJVFN0YWNrRnJhbWUsIHN0YWNrKSA9PSBSRUdJU1RFUl9GSUxFX09GRlNFVCk7CkBAIC0x
MTE4LDkgKzExMzMsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgVCB0aHJvd0V4Y2Vw
dGlvbkZyb21PcENhbGwoSklUU3RhY2tGcmFtZSYgaml0U3RhY2tGcgogICAgICAgICAiLmdsb2Js
ICIgU1lNQk9MX1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCiAgICAgICAgICIuZW50ICIgU1lNQk9M
X1NUUklORyhjdGlfIyNvcCkgIlxuIiBcCiAgICAgICAgIFNZTUJPTF9TVFJJTkcoY3RpXyMjb3Ap
ICI6IiAiXG4iIFwKLSAgICAgICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAotICAgICAgICAic3cgICAgJDMxLCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4i
IFwKICAgICAgICAgIi5zZXQgbWFjcm8iICJcbiIgXAorICAgICAgICAiLmNwbG9hZCAkMjUiICJc
biIgXAorICAgICAgICAic3cgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFRIVU5LX1JFVFVS
Tl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iIFwKICAgICAgICAgImxhICAgICQyNSwiIFNZ
TUJPTF9TVFJJTkcoSklUU3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCiAgICAgICAgICIuc2V0IG5v
bWFjcm8iICJcbiIgXAogICAgICAgICAiLnJlbG9jIDFmLFJfTUlQU19KQUxSLCIgU1lNQk9MX1NU
UklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4iIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuaAppbmRleCBmZjY3YzJhLi41MGQzNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVicy5oCkBAIC0yMjgsNiArMjI4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZv
aWQqIHByZXNlcnZlZFMwOwogICAgICAgICB2b2lkKiBwcmVzZXJ2ZWRTMTsKICAgICAgICAgdm9p
ZCogcHJlc2VydmVkUzI7CisgICAgICAgIHZvaWQqIHByZXNlcnZlZFMzOworICAgICAgICB2b2lk
KiBwcmVzZXJ2ZWRTNDsKICAgICAgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVzczsKIAog
ICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHRodW5rUmV0dXJuQWRkcmVzczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAppbmRleCBk
YTJkNTEwLi4xNTc1MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCkBAIC0zOCw2ICszOCw3IEBACiAjZGVmaW5lIE9GRkxJ
TkVfQVNNX0FSTXY3IDAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNkZWZpbmUgT0ZG
TElORV9BU01fQVJNdjdzIDAKKyNkZWZpbmUgT0ZGTElORV9BU01fTUlQUyAwCiAKICNlbHNlIC8v
ICFFTkFCTEUoTExJTlRfQ19MT09QKQogCkBAIC02Nyw2ICs2OCwxMiBAQAogI2RlZmluZSBPRkZM
SU5FX0FTTV9YODZfNjQgMAogI2VuZGlmCiAKKyNpZiBDUFUoTUlQUykKKyNkZWZpbmUgT0ZGTElO
RV9BU01fTUlQUyAxCisjZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDAKKyNlbmRpZgor
CiAjZW5kaWYgLy8gIUVOQUJMRShMTElOVF9DX0xPT1ApCiAKICNpZiBVU0UoSlNWQUxVRTY0KQpA
QCAtMTExLDQgKzExOCwxNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9WQUxVRV9QUk9GSUxFUiAw
CiAjZW5kaWYKIAorI2lmIENQVShNSVBTKQorI2lmZGVmIFdURl9NSVBTX1BJQworI2RlZmluZSBT
KHgpICN4CisjZGVmaW5lIFNYKHgpIFMoeCkKKyNkZWZpbmUgT0ZGTElORV9BU01fQ1BMT0FEKHJl
ZykgXAorICAgICIuc2V0IG5vcmVvcmRlclxuIiBcCisgICAgIi5jcGxvYWQgIiBTWChyZWcpICJc
biIgXAorICAgICIuc2V0IHJlb3JkZXJcbiIKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX0NQ
TE9BRChyZWcpCisjZW5kaWYKKyNlbmRpZgorCiAjZW5kaWYgLy8gTExJbnRPZmZsaW5lQXNtQ29u
ZmlnX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmFzbQppbmRleCAwMGQ1YzRmLi45ZGU0OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xODIsMTAgKzE4
Miw4IEBAIG1hY3JvIGFzc2VydChhc3NlcnRpb24pCiBlbmQKIAogbWFjcm8gcHJlc2VydmVSZXR1
cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0gICAgaWYgQ19MT09QCi0g
ICAgICAgICMgSW4gb3VyIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0aGUgYnl0ZWNvZGUg
dlBDLiAKLSAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2lmIEFS
TXY3CisgICAgaWYgQ19MT09QIG9yIEFSTXY3IG9yIE1JUFMKKyAgICAgICAgIyBJbiBDX0xPT1Ag
Y2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5nIHRoZSBieXRlY29kZSB2UEMuCiAgICAgICAgIG1v
dmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAgICAg
ICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCkBAIC0xOTUsMTAgKzE5Myw4IEBAIG1hY3JvIHBy
ZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQogZW5kCiAK
IG1hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQot
ICAgIGlmIENfTE9PUAotICAgICAgICAjIEluIG91ciBjYXNlLCB3ZSdyZSBvbmx5IHJlc3Rvcmlu
ZyB0aGUgYnl0ZWNvZGUgdlBDLiAKLSAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKLSAg
ICBlbHNpZiBBUk12NworICAgIGlmIENfTE9PUCBvciBBUk12NyBvciBNSVBTCisgICAgICAgICMg
SW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcmVzdG9yaW5nIHRoZSBieXRlY29kZSB2UEMuCiAg
ICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCiAgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAog
ICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGQ3Mjc0Nzgu
Ljk4MDk3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMTMsNiArMTEzLDEwIEBAIG1hY3JvIGND
YWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKICAgICAgICAgcG9rZSBhcmcxLCAwCiAgICAgICAg
IHBva2UgYXJnMiwgMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAg
ICAgICBtb3ZlIGFyZzEsIGEwCisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgY2FsbCBm
dW5jdGlvbgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxTbG93UGF0aCBmdW5j
dGlvbiwgYXJnMSwgYXJnMgogICAgIGVsc2UKQEAgLTEzNCw2ICsxMzgsMTIgQEAgbWFjcm8gY0Nh
bGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQogICAgICAgICBwb2tlIGFyZzMs
IDIKICAgICAgICAgcG9rZSBhcmc0LCAzCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICBlbHNp
ZiBNSVBTCisgICAgICAgIG1vdmUgYXJnMSwgYTAKKyAgICAgICAgbW92ZSBhcmcyLCBhMQorICAg
ICAgICBtb3ZlIGFyZzMsIGEyCisgICAgICAgIG1vdmUgYXJnNCwgYTMKKyAgICAgICAgY2FsbCBm
dW5jdGlvbgogICAgIGVsc2lmIENfTE9PUAogICAgICAgICBlcnJvcgogICAgIGVsc2UKQEAgLTE4
MjgsNiArMTgzOCwyMCBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvbikKICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0
MV0KICAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCiAgICAgICAg
IGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGVsc2lmIE1JUFMK
KyAgICAgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgICAg
IHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0YTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3Zl
IHQwLCB0MgorICAgICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCisgICAg
ICAgIHN0b3JlcCB0MywgUmV0dXJuUENbY2ZyXQorICAgICAgICBtb3ZlIGNmciwgdDAKKyAgICAg
ICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBsb2FkcCBK
U0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDFdLCB0MQorICAgICAgICBtb3ZlIHQyLCBjZnIKKyAg
ICAgICAgbW92ZSB0MCwgYTAKKyAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
blt0MV0KKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAg
ICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAgIGVsc2lmIENf
TE9PUAogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKICAg
ICAgICAgc3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCmluZGV4IDA3OGJlOGMuLmQ3ZDA0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCkBAIC0xNzksNyAr
MTc5LDggQEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9y
bWVkQWRkcmVzc2VzRG91YmxlKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlz
cGxhY2VkSW1tZWRpYXRlcyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZv
cm1lZEltbWVkaWF0ZXMocmVzdWx0LCAwLi4weGZmKQotICAgICAgICByZXN1bHQgPSByaXNjTG93
ZXJNaXNwbGFjZWRBZGRyZXNzZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJN
aXNwbGFjZWRBZGRyZXNzZXNDb21tb24ocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93
ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IHJp
c2NMb3dlclJlZ2lzdGVyUmV1c2UocmVzdWx0KQogICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdp
c3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgQVJNdjdfRVhUUkFfR1BSUykKICAgICAg
ICAgcmVzdWx0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpmcHIsIEFS
TXY3X0VYVFJBX0ZQUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9iYWNrZW5kcy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tl
bmRzLnJiCmluZGV4IDc4ZTU0NTcuLmVmOTM1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCkBAIC0yNSw2ICsyNSw3IEBAIHJlcXVpcmUgImNvbmZp
ZyIKIHJlcXVpcmUgImFybXY3IgogcmVxdWlyZSAiYXN0IgogcmVxdWlyZSAieDg2IgorcmVxdWly
ZSAibWlwcyIKIHJlcXVpcmUgImNsb29wIgogCiBCQUNLRU5EUyA9CkBAIC0zMiw2ICszMyw3IEBA
IEJBQ0tFTkRTID0KICAgICAgIlg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAiQVJNdjciLAor
ICAgICAiTUlQUyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCkBAIC00NSw2ICs0Nyw3IEBAIFdP
UktJTkdfQkFDS0VORFMgPQogICAgICAiWDg2IiwKICAgICAgIlg4Nl82NCIsCiAgICAgICJBUk12
NyIsCisgICAgICJNSVBTIiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgppbmRleCBlMDQ3YjJhLi40
ZTcwNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0
cnVjdGlvbnMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1
Y3Rpb25zLnJiCkBAIC0yNjUsNiArMjY1LDE2IEBAIEFSTXY3X0lOU1RSVUNUSU9OUyA9CiAgICAg
ICJvcmlzIgogICAgIF0KIAorTUlQU19JTlNUUlVDVElPTlMgPQorICAgIFsKKyAgICAibW92eiIs
CisgICAgIm1vdm4iLAorICAgICJzbHQiLAorICAgICJzbHR1IiwKKyAgICAicGljaGRyIiwKKyAg
ICAicGljaGRycmEiCisgICAgXQorCiBDWFhfSU5TVFJVQ1RJT05TID0KICAgICBbCiAgICAgICJj
bG9vcENyYXNoIiwgICAgICAgICAgICMgbm8gb3BlcmFuZHMKQEAgLTI4MSw3ICsyOTEsNyBAQCBD
WFhfSU5TVFJVQ1RJT05TID0KICAgICAgImNsb29wRG8iLCAgICAgICAgICAgICAgIyBubyBvcGVy
YW5kcwogICAgIF0KIAotSU5TVFJVQ1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lO
U1RSVUNUSU9OUyArIEFSTXY3X0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKK0lOU1RS
VUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4Nl9JTlNUUlVDVElPTlMgKyBBUk12N19J
TlNUUlVDVElPTlMgKyBNSVBTX0lOU1RSVUNUSU9OUyArIENYWF9JTlNUUlVDVElPTlMKIAogSU5T
VFJVQ1RJT05fUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgoJyArIElOU1RSVUNUSU9OUy5qb2lu
KCcpfCgnKSArICcpKVxcWicpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL21pcHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBz
LnJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMzQ0MmQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9taXBzLnJiCkBAIC0w
LDAgKzEsODY4IEBACisjIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBNSVBTIFRlY2hub2xvZ2llcywgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1J
UFMgVEVDSE5PTE9HSUVTLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgTUlQ
UyBURUNITk9MT0dJRVMsIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCityZXF1aXJlICdyaXNjJworCitjbGFzcyBBc3NlbWJsZXIKKyAgICBkZWYgcHV0U3Ry
KHN0cikKKyAgICAgICAgQG91dHAucHV0cyBzdHIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBOb2Rl
CisgICAgZGVmIG1pcHNTaW5nbGVIaQorICAgICAgICBkb3VibGVPcGVyYW5kID0gbWlwc09wZXJh
bmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lzdGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIg
dW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15cJGYvCisgICAgICAgICIkZiIgKyAoJH4ucG9zdF9t
YXRjaC50b19pICsgMSkudG9fcworICAgIGVuZAorICAgIGRlZiBtaXBzU2luZ2xlTG8KKyAgICAg
ICAgZG91YmxlT3BlcmFuZCA9IG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdp
c3RlciBuYW1lICN7ZG91YmxlT3BlcmFuZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eXCRm
LworICAgICAgICBkb3VibGVPcGVyYW5kCisgICAgZW5kCitlbmQKKworY2xhc3MgU3BlY2lhbFJl
Z2lzdGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBAbmFtZQor
ICAgIGVuZAorCisgICAgZGVmIGR1bXAKKyAgICAgICAgQG5hbWUKKyAgICBlbmQKKworICAgIGRl
ZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKK01JUFNfVEVNUF9HUFJT
ID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDYi
KSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ3IiksCisgICAgICAgICAgICAgICAgICAgIFNwZWNp
YWxSZWdpc3Rlci5uZXcoIiR0OCIpXQorTUlQU19URU1QX0ZQUlMgPSBbU3BlY2lhbFJlZ2lzdGVy
Lm5ldygiJGYxNiIpXQorTUlQU19TQ1JBVENIX0ZQUiA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRm
MTgiKQorCitkZWYgbWlwc01vdmVJbW1lZGlhdGUodmFsdWUsIHJlZ2lzdGVyKQorICAgIGlmIHZh
bHVlID09IDAKKyAgICAgICAgJGFzbS5wdXRzICJhZGQgI3tyZWdpc3Rlci5taXBzT3BlcmFuZH0s
ICR6ZXJvLCAkemVybyIKKyAgICBlbHNlCisgICAgICAgICRhc20ucHV0cyAibGkgI3tyZWdpc3Rl
ci5taXBzT3BlcmFuZH0sICN7dmFsdWV9IgorICAgIGVuZAorZW5kCisKKworY2xhc3MgUmVnaXN0
ZXJJRAorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hl
biAiYTAiCisgICAgICAgICAgICAiJGEwIgorICAgICAgICB3aGVuICJhMSIKKyAgICAgICAgICAg
ICIkYTEiCisgICAgICAgIHdoZW4gInIwIiwgInQwIgorICAgICAgICAgICAgIiR2MCIKKyAgICAg
ICAgd2hlbiAicjEiLCAidDEiCisgICAgICAgICAgICAiJHYxIgorICAgICAgICB3aGVuICJ0MiIK
KyAgICAgICAgICAgICIkdDIiCisgICAgICAgIHdoZW4gInQzIgorICAgICAgICAgICAgIiRzMyIK
KyAgICAgICAgd2hlbiAidDQiICAgIyBQQyByZWcgaW4gbGxpbnQKKyAgICAgICAgICAgICIkczIi
CisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgIiR0NSIKKyAgICAgICAgd2hlbiAidDYi
CisgICAgICAgICAgICAiJHQ2IgorICAgICAgICB3aGVuICJ0NyIKKyAgICAgICAgICAgICIkdDci
CisgICAgICAgIHdoZW4gInQ4IgorICAgICAgICAgICAgIiR0OCIKKyAgICAgICAgd2hlbiAiY2Zy
IgorICAgICAgICAgICAgIiRzMCIKKyAgICAgICAgd2hlbiAibHIiCisgICAgICAgICAgICAiJHJh
IgorICAgICAgICB3aGVuICJzcCIKKyAgICAgICAgICAgICIkc3AiCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgTUlQUyBhdCAje2NvZGVP
cmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lz
dGVySUQKKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgY2FzZSBuYW1lCisgICAgICAgIHdo
ZW4gImZ0MCIsICJmciIKKyAgICAgICAgICAgICIkZjAiCisgICAgICAgIHdoZW4gImZ0MSIKKyAg
ICAgICAgICAgICIkZjIiCisgICAgICAgIHdoZW4gImZ0MiIKKyAgICAgICAgICAgICIkZjQiCisg
ICAgICAgIHdoZW4gImZ0MyIKKyAgICAgICAgICAgICIkZjYiCisgICAgICAgIHdoZW4gImZ0NCIK
KyAgICAgICAgICAgICIkZjgiCisgICAgICAgIHdoZW4gImZ0NSIKKyAgICAgICAgICAgICIkZjEw
IgorICAgICAgICB3aGVuICJmYTAiCisgICAgICAgICAgICAiJGYxMiIKKyAgICAgICAgd2hlbiAi
ZmExIgorICAgICAgICAgICAgIiRmMTQiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNl
ICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgTUlQUyBhdCAje2NvZGVPcmlnaW5TdHJpbmd9Igor
ICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgbWlw
c09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkludmFsaWQgaW1tZWRpYXRlICN7dmFsdWV9IGF0ICN7
Y29kZU9yaWdpblN0cmluZ30iIGlmIHZhbHVlIDwgLTB4N2ZmZiBvciB2YWx1ZSA+IDB4N2ZmZgor
ICAgICAgICAiI3t2YWx1ZX0iCisgICAgZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRl
ZiBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiQmFkIG9mZnNldCBhdCAje2NvZGVPcmlnaW5T
dHJpbmd9IiBpZiBvZmZzZXQudmFsdWUgPCAtMHg3ZmZmIG9yIG9mZnNldC52YWx1ZSA+IDB4N2Zm
ZgorICAgICAgICAiI3tvZmZzZXQudmFsdWV9KCN7YmFzZS5taXBzT3BlcmFuZH0pIgorICAgIGVu
ZAorZW5kCisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAgIGRlZiBtaXBzT3BlcmFuZAorICAg
ICAgICByYWlzZSAiVW5jb252ZXJ0ZWQgYWJzb2x1dGUgYWRkcmVzcyBhdCAje2NvZGVPcmlnaW5T
dHJpbmd9IgorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXIgJ2FuZCcgbWFza2VkIGJyYW5jaGVz
CisjCisKK2RlZiBsb3dlck1JUFNDb25kQnJhbmNoKGxpc3QsIGNvbmRPcCwgbm9kZSkKKyAgICBp
ZiBub2RlLm9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRP
cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIFNw
ZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNbLTFdXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAgIGVsc2lmIG5vZGUu
b3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2lu
LCA6Z3ByKQorICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmRpIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRt
cF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikKKyAg
ICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25kT3AsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNb
LTFdXSkKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJFeHBlY3RlZCAyIG9yIDMgb3BlcmFuZHMg
YnV0IGdvdCAje25vZGUub3BlcmFuZHMuc2l6ZX0gYXQgI3tub2RlLmNvZGVPcmlnaW5TdHJpbmd9
IgorICAgIGVuZAorZW5kCisKKyMKKyMgTG93ZXJpbmcgb2YgYnJhbmNoIG9wcy4gRm9yIGV4YW1w
bGU6CisjCisjIGJhZGRpeiBmb28sIGJhciwgYmF6CisjCisjIHdpbGwgYmVjb21lOgorIworIyBh
ZGRpIGZvbywgYmFyCisjIGJ6IGJhegorIworCitkZWYgbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3Bz
KGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2Rl
IHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgYW5ub3Rh
dGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAg
ICAgICAgICAgd2hlbiAvXmIoYWRkaXxzdWJpfG9yaXxhZGRwKS8KKyAgICAgICAgICAgICAgICBv
cCA9ICQxCisgICAgICAgICAgICAgICAgYmMgPSAkfi5wb3N0X21hdGNoCisgICAgICAgICAgICAg
ICAgYnJhbmNoID0gImIiICsgYmMKKworICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAg
ICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiCisgICAgICAgICAgICAgICAgICAgIG9wID0gImFk
ZGkiCisgICAgICAgICAgICAgICAgd2hlbiAic3ViaSIKKyAgICAgICAgICAgICAgICAgICAgb3Ag
PSAic3ViaSIKKyAgICAgICAgICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICAgICAgICAg
IG9wID0gIm9yaSIKKyAgICAgICAgICAgICAgICBlbmQKKworICAgICAgICAgICAgICAgIHplcm8g
PSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpCisgICAgICAgICAgICAgICAgaWYgYmMgPT0g
Im8iCisgICAgICAgICAgICAgICAgICAgIGNhc2Ugb3AKKyAgICAgICAgICAgICAgICAgICAgd2hl
biAiYWRkaSIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGFkZHUgJHMwLCAkczEsICRzMgor
ICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJvLCBubyBvdmVyZmxvdworICAgICAgICAgICAg
ICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMwLCAkczEKKyAgICAgICAgICAgICAgICAgICAgICAg
ICMgIGJsdCAkdDAsICR6ZXJvLCBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyBu
byBvdmVyZmxvdzoKKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAg
ICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXco
bm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1sw
XSwgbm9kZS5vcGVyYW5kc1sxXSwgdHJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIs
IFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXBdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
YmlsdCIsIFt0bXAsIHplcm8sIG5vRmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBu
b2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIHplcm8sIG5v
ZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zs
b3cKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAg
ICAgICAgICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgc3VidSAk
czAsICRzMSwgJHMyCisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRz
MgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYmdlICR0MCwgJHplcm8sIG5vIG92ZXJmbG93
CisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAg
ICAgICAgICAgICAgICAgIyAgYmx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAg
ICAgICAgICAgICAjIG5vIG92ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAg
ICAgICAgICAgICAgICAgICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6
Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgemVybyA9IFNwZWNpYWxSZWdpc3Rlci5uZXco
IiR6ZXJvIikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2FsTGFiZWwudW5p
cXVlKCJub2Zsb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVmID0gTG9jYWxM
YWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9w
LCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdHJdLCBhbm5vdGF0aW9uKQor
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0
bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAiYmlndGVxIiwgW3RtcCwgemVybywgbm9GbG93UmVmXSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgInhvcmkiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJi
aWx0IiwgW3RtcCwgemVybywgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vRmxvdworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFt0ciwgbm9kZS5vcGVy
YW5kc1sxXV0pCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgbm8gb3Z3ZXJmbG93IGF0IG9yaQorICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVy
YW5kc1swLi4xXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzFdLmlz
X2E/IEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIgPSBub2RlLm9wZXJhbmRz
WzFdCisgICAgICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2lu
LCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZHAiLCBbYWRkciwgdHJdLCBhbm5vdGF0aW9uKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCBvcCwgW25vZGUub3BlcmFuZHNbMF0sIHRyXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlcCIs
IFt0ciwgYWRkcl0pCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRyID0gbm9kZS5vcGVyYW5kc1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBvcCwgbm9kZS5vcGVyYW5k
c1swLi4tMl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJy
YW5jaCwgW3RyLCB6ZXJvLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICB3aGVuICJiaWEiLCAiYnBhIiwgImJiYSIKKyAgICAgICAgICAgICAgICB0
bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBjb21w
ID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNsdHUiCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBjb21wLCBb
dG1wLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdXSwgYW5ub3RhdGlvbikKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2RlLm9wZXJhbmRz
WzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYWVxIiwgImJwYWVxIiwgImJiYWVxIgorICAgICAg
ICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIK
KyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBhbm5v
dGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9k
ZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJiaWIiLCAiYnBiIiwgImJiYiIKKyAg
ICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAg
ICAgICAgICAgICBjb21wID0gbm9kZS5vcGNvZGVbMSwxXSA9PSAiYiIgPyAic2x0dWIiIDogInNs
dHUiCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCBjb21wLCBbdG1wLCBub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdXSwg
YW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJibnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIp
LCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYmVxIiwgImJwYmVxIiwg
ImJiYmVxIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6
Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJz
bHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3Bl
cmFuZHNbMF1dLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ6IiwgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5l
dygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICB3aGVuICJidGl6Iiwg
ImJ0cHoiLCAiYnRieiIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xp
c3QsICJieiIsIG5vZGUpCisgICAgICAgICAgICB3aGVuICJidGlueiIsICJidHBueiIsICJidGJu
eiIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJibnoiLCBu
b2RlKQorICAgICAgICAgICAgd2hlbiAiYnRpbyIsICJidHBvIiwgImJ0Ym8iCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICB3aGVuICJidGlzIiwgImJ0cHMiLCAi
YnRicyIKKyAgICAgICAgICAgICAgICBsb3dlck1JUFNDb25kQnJhbmNoKG5ld0xpc3QsICJicyIs
IG5vZGUpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBu
b2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBTcGVjaWFs
aXphdGlvbiBvZiBsb3dlcmluZyBvZiBtYWxmb3JtZWQgQmFzZUluZGV4IGFkZHJlc3Nlcy4KKyMK
KworY2xhc3MgQmFzZUluZGV4CisgICAgZGVmIHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc1Jl
Y3Vyc2UobGlzdCwgbm9kZSwgJmJsb2NrKQorICAgICAgICBpZiBzY2FsZVNoaWZ0ID09IDAKKyAg
ICAgICAgICAgIHRtcDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBs
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAiYWRkcCIsIFtiYXNlLCBpbmRleCwg
dG1wMF0pCisgICAgICAgICAgICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlh
dGUubmV3KGNvZGVPcmlnaW4sIG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0bXAwID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgbGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImxzaGlmdGkiLCBbaW5kZXgsIEltbWVkaWF0
ZS5uZXcoY29kZU9yaWdpbiwgc2NhbGVTaGlmdCksIHRtcDBdKTsKKyAgICAgICAgICAgIGxpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIHRtcDBdKQorICAg
ICAgICAgICAgQWRkcmVzcy5uZXcoY29kZU9yaWdpbiwgdG1wMCwgSW1tZWRpYXRlLm5ldyhjb2Rl
T3JpZ2luLCBvZmZzZXQudmFsdWUpKTsKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKKworIwor
IyBMb3dlcmluZyBvZiBtaXNwbGFjZWQgaW1tZWRpYXRlcyBvZiBNSVBTIHNwZWNpZmljIGluc3Ry
dWN0aW9ucy4gRm9yIGV4YW1wbGU6CisjCisjIHNsdHUgcmVnLCA0LCAyCisjCisjIHdpbGwgYmVj
b21lOgorIworIyBtb3ZlIDQsIHRtcAorIyBzbHR1IHJlZywgdG1wLCAyCisjCisKK2RlZiBtaXBz
TG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlz
dC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVj
dGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAic2x0
IiwgInNsdHUiLCAic2x0YiIsICJzbHR1YiIKKyAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJh
bmRzWzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzFd
LCB0bXBdLCBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlLm9wZXJhbmRzWzBdLCB0
bXAsIG5vZGUub3BlcmFuZHNbMl1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAg
ICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxpemF0aW9uIG9m
IGxvd2VyaW5nIG9mIG1pc3BsYWNlZCBhZGRyZXNzZXMuCisjCisKK2RlZiBtaXBzTG93ZXJNaXNw
bGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3Qu
ZWFjaCB7CisgICAgICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rp
b24KKyAgICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3Rh
dGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAg
ICAgICAgICAgd2hlbiAiam1wIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0u
YWRkcmVzcz8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygi
JHJhIikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibG9hZGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1w
XSkKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUu
b3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
cmlzY0FzUmVnaXN0ZXIobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5vcGVyYW5kc1sw
XSwgInAiLCBmYWxzZSldKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgd2hlbiAi
Y2FsbCIKKyAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
ICBpZiBub2RlLm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIHRtcCA9
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0OSIpCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRwIiwg
W25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9
IHRydWU7CisgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBMYWJl
bFJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRzWzBdCisg
ICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxz
aWYgbm9kZS5vcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0g
U3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibW92ZSIsIFtu
b2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0
cnVlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gbm9k
ZS5vcGVyYW5kc1swXQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFt0bXBd
KQorICAgICAgICAgICAgICAgIGlmIHJlc3RvcmVHUAorICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1NwZWNpYWxSZWdpc3Rlci5uZXcoIiRzNCIp
LCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZ3AiKV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAg
ICAgICAgICB3aGVuICJzbHQiLCAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJh
bmRzLCAiaSIpKQorICAgICAgICAgICAgd2hlbiAic2x0dWIiLCAic2x0YiIKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xp
c3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAiYnoiLCAiYm56
IiwgImJzIiwgImJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMsICJpIikpCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9ucworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5kCisgICAgfQor
ICAgIG5ld0xpc3QKK2VuZAorCisjCisjIExvd2VyaW5nIGNvbXBhcmVzIGFuZCB0ZXN0cy4KKyMK
KworZGVmIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShsaXN0LCBub2RlLCBvcENtcCwgb3BNb3Yp
CisgICAgdG1wMCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgIHRtcDEgPSBU
bXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAwKSwgbm9kZS5v
cGVyYW5kc1syXV0pCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCBvcENtcCwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcDBdKQorICAg
IGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRp
YXRlLm5ldyhuaWwsIDEpLCB0bXAxXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIG9wTW92LCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1wMF0pCitlbmQK
KworZGVmIG1pcHNMb3dlckNvbXBhcmVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlz
dC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVj
dGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAiY2ll
cSIsICJjcGVxIiwgImNiZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBs
YXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAiY2lu
ZXEiLCAiY3BuZXEiLCAiY2JuZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRl
bXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAi
dGl6IiwgInRieiIsICJ0cHoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBs
YXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdnoiKQorICAgICAgICAgICAgd2hlbiAidGlu
eiIsICJ0Ym56IiwgInRwbnoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29tcGFyZVRlbXBs
YXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdm4iKQorICAgICAgICAgICAgd2hlbiAidGlv
IiwgInRibyIsICJ0cG8iCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBd
LCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
emVybyIpLCB0bXBdKQorICAgICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCisgICAg
ICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAg
ICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIs
IFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAg
ICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2Rl
Lm9wZXJhbmRzWzJdLCB0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIildKQorICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAg
ZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBl
bmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTGVhIHN1cHBvcnQuCisjCisKK2Ns
YXNzIEFkZHJlc3MKKyAgICBkZWYgbWlwc0VtaXRMZWEoZGVzdGluYXRpb24pCisgICAgICAgIGlm
IGRlc3RpbmF0aW9uID09IGJhc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0
aW5hdGlvbi5taXBzT3BlcmFuZH0sICN7b2Zmc2V0LnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3ti
YXNlLm1pcHNPcGVyYW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQK
K2VuZAorCisjCisjIEFkZCBQSUMgY29tcGF0aWJsZSBoZWFkZXIgY29kZSB0byBwcm9sb2d1ZS9l
bnRyeSBydXRpbnMuCisjCisKK2RlZiBtaXBzQWRkUElDQ29kZShsaXN0KQorICAgIG15TGlzdCA9
IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgbXlMaXN0IDw8
IG5vZGUKKyAgICAgICAgaWYgbm9kZS5pc19hPyBMYWJlbAorICAgICAgICAgICAgaWYgL19wcm9s
b2d1ZSQvLm1hdGNoKG5vZGUubmFtZSkgfHwgL15fbGxpbnRfZnVuY3Rpb25fLy5tYXRjaChub2Rl
Lm5hbWUpCisgICAgICAgICAgICAgICAgIyBGdW5jdGlvbnMgY2FsbGVkIGZyb20gdHJhbXBvbGlu
ZS9KSVQgY29kZXMuCisgICAgICAgICAgICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJwaWNoZHIiLCBbXSkKKyAgICAgICAgICAgIGVsc2lmIC9fbGxpbnRf
b3BfY2F0Y2gvLm1hdGNoKG5vZGUubmFtZSkKKyAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbiBj
YWN0Y2hlciBlbnRyeSBwb2ludCBmdW5jdGlvbi4KKyAgICAgICAgICAgICAgICBteUxpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInBpY2hkcnJhIiwgW10pCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgfQorICAgIG15TGlzdAorZW5kCisKKyMKKyMgQWN0
dWFsIGxvd2VyaW5nIGNvZGUgZm9sbG93cy4KKyMKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYg
Z2V0TW9kaWZpZWRMaXN0TUlQUworICAgICAgICByZXN1bHQgPSBAbGlzdAorCisgICAgICAgICMg
VmVyaWZ5IHRoYXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KKyAg
ICAgICAgcmVzdWx0LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIHVu
bGVzcyBub2RlLmlzX2E/IEluc3RydWN0aW9uIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUu
aXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVs
IG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAg
IHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0i
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1pcHNBZGRQ
SUNDb2RlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3Bz
KHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VySGFyZEJyYW5jaE9wcyhyZXN1bHQp
CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlclNoaWZ0T3BzKHJlc3VsdCkKKyAgICAgICAgcmVz
dWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzKHJlc3VsdCkgeworICAgICAgICAgICAg
fCBub2RlLCBhZGRyZXNzIHwKKyAgICAgICAgICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcwor
ICAgICAgICAgICAgICAgICgtMHhmZmZmLi4weGZmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0
LnZhbHVlCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICB9CisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFk
ZHJlc3Nlc0RvdWJsZShyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNl
ZEltbWVkaWF0ZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBtaXBzTG93ZXJNaXNwbGFjZWRJ
bW1lZGlhdGVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1t
ZWRpYXRlcyhyZXN1bHQsIC0weGZmZmYuLjB4ZmZmZikKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xv
d2VyTWlzcGxhY2VkQWRkcmVzc2VzQ29tbW9uKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlw
c0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzU3BlY2lmaWMocmVzdWx0KQorICAgICAgICByZXN1bHQg
PSByaXNjTG93ZXJSZWdpc3RlclJldXNlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xv
d2VyQ29tcGFyZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1Rl
bXBvcmFyaWVzKHJlc3VsdCwgOmdwciwgTUlQU19URU1QX0dQUlMpCisgICAgICAgIHJlc3VsdCA9
IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6ZnByLCBNSVBTX1RFTVBfRlBS
UykKKworICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgZW5kCitlbmQKKworZGVmIG1pcHNPcGVy
YW5kcyhvcGVyYW5kcykKKyAgICBvcGVyYW5kcy5tYXB7fHZ8IHYubWlwc09wZXJhbmR9LmpvaW4o
IiwgIikKK2VuZAorCitkZWYgbWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcykKKyAgICBtaXBz
T3BlcmFuZHMoW29wZXJhbmRzWy0xXV0gKyBvcGVyYW5kc1swLi4tMl0pCitlbmQKKworZGVmIGdl
dE1JUFNPcGNvZGUob3Bjb2RlLCBzdWZmaXgpCisKK2VuZAorCitkZWYgZW1pdE1JUFNDb21wYWN0
KG9wY29kZSwgb3Bjb2RlaSwgb3BlcmFuZHMpCisgICAgcG9zdGZpeCA9ICIiCisgICAgaWYgb3Bj
b2RlID09ICJzdWIiCisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAg
ICAgICAgICAgb3Bjb2RlID0gImFkZCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdID0gSW1tZWRp
YXRlLm5ldyhvcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAtMSAqIG9wZXJhbmRzWzBdLnZhbHVlKQor
ICAgICAgICBlbHNpZiBvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9w
Y29kZSA9ICJhZGQiCisgICAgICAgICAgICBvcGVyYW5kc1sxXSA9IEltbWVkaWF0ZS5uZXcob3Bl
cmFuZHNbMV0uY29kZU9yaWdpbiwgLTEgKiBvcGVyYW5kc1sxXS52YWx1ZSkKKyAgICAgICAgZW5k
CisgICAgICAgIHBvc3RmaXggPSAidSIKKyAgICBlbHNpZiBvcGNvZGUgPT0gImFkZCIKKyAgICAg
ICAgcG9zdGZpeCA9ICJ1IgorICAgIGVuZAorICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAg
ICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0
cyAiI3tvcGNvZGV9aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgZWxz
aWYgb3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7
b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52YWx1ZX0iCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9I3twb3N0Zml4fSAje21pcHNGbGlwcGVkT3Bl
cmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sx
XS5yZWdpc3Rlcj8KKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9
I3twb3N0Zml4fSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbmQKKyAgICBl
bmQKK2VuZAorCitkZWYgZW1pdE1JUFNTaGlmdENvbXBhY3Qob3Bjb2RlLCBvcGVyYW5kcykKKyAg
ICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgaWYgKG9wZXJhbmRzWzFdLmlzX2E/IElt
bWVkaWF0ZSkKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMl0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS52
YWx1ZX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9diAj
e21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgZW5kCisgICAgZWxzZQor
ICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGlmIG9wZXJh
bmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX12ICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRhc20ucHV0
cyAiI3tvcGNvZGV9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZX0iCisgICAgICAgIGVuZAorICAgIGVuZAor
ZW5kCisKK2RlZiBlbWl0TUlQUyhvcGNvZGUsIG9wZXJhbmRzKQorICAgIGlmIG9wZXJhbmRzLnNp
emUgPT0gMworICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje21pcHNGbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICBlbHNlCisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5z
aXplID09IDIKKyAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSIKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFNEb3VibGVCcmFuY2goYnJhbmNo
T3Bjb2RlLCBuZWcsIG9wZXJhbmRzKQorICAgICRhc20ucHV0cyAiYy4je2JyYW5jaE9wY29kZX0u
ZCAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9IgorICAgIGlmICghbmVnKQorICAgICAg
ICAkYXNtLnB1dHMgImJjMXQgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZWxzZQorICAg
ICAgICAkYXNtLnB1dHMgImJjMWYgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgZW5kCitl
bmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgbG93ZXJNSVBTCisgICAgICAgICRhc20u
Y29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAgIGNhc2Ugb3Bjb2RlCisgICAgICAgIHdo
ZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUg
PT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgcmFp
c2UgdW5sZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJhaXNlIHVu
bGVzcyBvcGVyYW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1sw
XS52YWx1ZSA9PSAwICNhbmQgc3VmZml4LmVtcHR5PworICAgICAgICAgICAgICAgICAgICB1bmxl
c3Mgb3BlcmFuZHNbMV0gPT0gb3BlcmFuZHNbMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICRh
c20ucHV0cyAibW92ZSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5t
aXBzT3BlcmFuZH0iCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzJdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzaWYgb3BlcmFu
ZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICBy
YWlzZSB1bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2Ug
dW5sZXNzIG9wZXJhbmRzWzJdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
YWRkdSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAg
ICAgICAgICAgICAgdW5sZXNzIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXQor
ICAgICAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSwgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
JGFzbS5wdXRzICJhZGR1ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAg
ICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiYW5kaSIsICJhbmRwIgorICAg
ICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJhbmQiLCAiYW5kIiwgb3BlcmFuZHMpCisgICAgICAg
IHdoZW4gIm9yaSIsICJvcnAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoIm9yIiwgIm9y
ciIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJvcmlzIgorICAgICAgICAgICAgZW1pdE1JUFND
b21wYWN0KCJvciIsICJvcnJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInhvcmkiLCAieG9y
cCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgieG9yIiwgImVvciIsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJsc2hpZnRpIiwgImxzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1No
aWZ0Q29tcGFjdCgic2xsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInJzaGlmdGkiLCAicnNo
aWZ0cCIKKyAgICAgICAgICAgIGVtaXRNSVBTU2hpZnRDb21wYWN0KCJzcmEiLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAidXJzaGlmdGkiLCAidXJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQ
U1NoaWZ0Q29tcGFjdCgic3JsIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGkiLCAibXVs
cCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJtdWwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
c3ViaSIsICJzdWJwIiwgInN1YmlzIgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJzdWIi
LCAic3VicyIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJuZWdpIiwgIm5lZ3AiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIm5lZ3UgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJub3RpIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJub3IgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAkemVybyIKKyAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRw
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic3cgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGIi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImxidSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYiAj
e21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmViIgor
ICAgICAgICAgICAgJGFzbS5wdXRzICJzYiAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAg
ICAgICB3aGVuICJsb2FkaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibGh1ICN7bWlwc0ZsaXBw
ZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkaHMiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImxoICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAg
ICB3aGVuICJzdG9yZWgiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNodiAje21pcHNPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkZCIKKyAgICAgICAgICAgICRhc20ucHV0
cyAibGRjMSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAi
c3RvcmVkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzZGMxICN7bWlwc09wZXJhbmRzKG9wZXJh
bmRzKX0iCisgICAgICAgIHdoZW4gImFkZGQiCisgICAgICAgICAgICBlbWl0TUlQUygiYWRkLmQi
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiZGl2ZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJk
aXYuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzdWJkIgorICAgICAgICAgICAgZW1pdE1J
UFMoInN1Yi5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm11bGQiCisgICAgICAgICAgICBl
bWl0TUlQUygibXVsLmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3FydGQiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInNxcnQuZCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
KyAgICAgICAgd2hlbiAiY2kyZCIKKyAgICAgICAgICAgIHJhaXNlICJpbnZhbGlkIG9wcyBvZiAj
e3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzWzFd
LmlzX2E/IEZQUmVnaXN0ZXJJRCBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAg
d2hlbiAiYmRlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIGZhbHNl
LCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRuZXEiCisgICAgICAgICAgICBlbWl0TUlQU0Rv
dWJsZUJyYW5jaCgidWVxIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3QiCisg
ICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWxlIiwgdHJ1ZSwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImJkZ3RlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1
bHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdCIKKyAgICAgICAgICAgIGVt
aXRNSVBTRG91YmxlQnJhbmNoKCJvbHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
ImJkbHRlcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbGUiLCBmYWxzZSwg
b3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZXF1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91
YmxlQnJhbmNoKCJ1ZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxdW4i
CisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCB0cnVlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYmRndHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2go
Im9sZSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXF1biIKKyAgICAgICAg
ICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJvbHQiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAiYmRsdHVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsdCIsIGZh
bHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRsdGVxdW4iCisgICAgICAgICAgICBlbWl0
TUlQU0RvdWJsZUJyYW5jaCgidWxlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJi
dGQyaSIKKyAgICAgICAgICAgICMgRklYTUU6IG1heSBiZSBhIGdvb2QgaWRlYSB0byBqdXN0IGdl
dCByaWQgb2YgdGhpcyBpbnN0cnVjdGlvbiwgc2luY2UgdGhlIGludGVycHJldGVyCisgICAgICAg
ICAgICAjIGN1cnJlbnRseSBkb2VzIG5vdCB1c2UgaXQuCisgICAgICAgICAgICByYWlzZSAiTUlQ
UyBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIKKyAgICAg
ICAgd2hlbiAidGQyaSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NS
QVRDSF9GUFIubWlwc1NpbmdsZUxvfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQ
U19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAgICB3aGVuICJiY2QyaSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiY3Z0LncuZCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxv
fSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1m
YzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2lu
Z2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQuZC53ICN7TUlQU19TQ1JBVENIX0ZQ
Ui5taXBzT3BlcmFuZH0sICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99IgorICAgICAg
ICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwgdHJ1ZSwgW01JUFNfU0NSQVRDSF9GUFIs
IG9wZXJhbmRzWzBdLCBvcGVyYW5kc1syXV0pCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgJHplcm8sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgICAgICB3aGVuICJtb3ZkeiIKKyAgICAgICAgICAgICMgRklYTUU6IGVpdGhlciBzdXBw
b3J0IHRoaXMgb3IgcmVtb3ZlIGl0LgorICAgICAgICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qg
c3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29kZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInBv
cCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
IDAoJHNwKSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgJHNwLCAkc3AsIDQiCisgICAg
ICAgIHdoZW4gInB1c2giCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRzcCwgJHNwLCAt
NCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3cgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
IDAoJHNwKSIKKyAgICAgICAgd2hlbiAibW92ZSIsICJzeGkycCIsICJ6eGkycCIKKyAgICAgICAg
ICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgICAgIG1pcHNN
b3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3ttaXBzRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAibm9wIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJub3AiCisgICAgICAgIHdoZW4gImJpZXEiLCAiYnBlcSIsICJi
YmVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNb
MC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbmVxIiwg
ImJwbmVxIiwgImJibmVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJibmUgI3ttaXBzT3BlcmFu
ZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdo
ZW4gImJpZ3QiLCAiYnBndCIsICJiYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3tt
aXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisg
ICAgICAgIHdoZW4gImJpZ3RlcSIsICJicGd0ZXEiLCAiYmJndGVxIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJiZ2UgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1sy
XS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbHQiLCAiYnBsdCIsICJiYmx0IgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJibHQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSwgI3tv
cGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJpbHRlcSIsICJicGx0ZXEiLCAi
YmJsdGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJibGUgI3ttaXBzT3BlcmFuZHMob3BlcmFu
ZHNbMC4uMV0pfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImptcCIK
KyAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmxhYmVsPworICAgICAgICAgICAgICAgICRhc20u
cHV0cyAiaiAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgImpyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAg
ICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNhbGwiCisgICAgICAgICAgICBpZiBvcGVyYW5k
c1swXS5sYWJlbD8KKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImphbCAje29wZXJhbmRzWzBd
LmFzbUxhYmVsfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImphbHIgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICBlbmQKKyAgICAg
ICAgd2hlbiAiYnJlYWsiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJyZWFrIgorICAgICAgICB3
aGVuICJyZXQiCisgICAgICAgICAgICAkYXNtLnB1dHMgImpyICRyYSIKKyAgICAgICAgd2hlbiAi
Y2lhIiwgImNwYSIsICJjYmEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lhZXEiLCAiY3BhZXEiLCAiY2JhZXEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
MSIKKyAgICAgICAgd2hlbiAiY2liIiwgImNwYiIsICJjYmIiCisgICAgICAgICAgICAkYXNtLnB1
dHMgInNsdHUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2liZXEi
LCAiY3BiZXEiLCAiY2JiZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRz
WzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJhbmRz
WzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAiY2lndCIsICJjcGd0IiwgImNiZ3Qi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9Igor
ICAgICAgICB3aGVuICJjaWd0ZXEiLCAiY3BndGVxIiwgImNiZ3RlcSIKKyAgICAgICAgICAgICRh
c20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgInhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4g
ImNpbHQiLCAiY3BsdCIsICJjYmx0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVy
YW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lsdGVxIiwgImNwbHRlcSIsICJj
Ymx0ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJh
bmR9LCAxIgorICAgICAgICB3aGVuICJwZWVrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAqIDR9KCRzcCki
CisgICAgICAgIHdoZW4gInBva2UiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlICogNH0oJHNwKSIKKyAgICAg
ICAgd2hlbiAiZmlpMmQiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1sw
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibXRjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sy
XS5taXBzU2luZ2xlSGl9IgorICAgICAgICB3aGVuICJmZDJpaSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAibWZjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBz
U2luZ2xlTG99IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNTaW5nbGVIaX0iCisgICAgICAgIHdoZW4gImJv
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZ3QgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAg
ICAgICAgd2hlbiAiYnMiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJsdCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0u
YXNtTGFiZWx9IgorICAgICAgICB3aGVuICJieiIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVx
ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJueiIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiYm5lICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImxl
YWkiLCAibGVhcCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzBdLm1pcHNFbWl0TGVhKG9wZXJhbmRz
WzFdKQorICAgICAgICB3aGVuICJzbXVsbGkiCisgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVt
YmVyIG9mIGFyZ3VtZW50cyB0byBzbXVsbCBpbiAje3NlbGYuaW5zcGVjdH0gYXQgI3tjb2RlT3Jp
Z2luU3RyaW5nfSIgdW5sZXNzIG9wZXJhbmRzLmxlbmd0aCA9PSA0CisgICAgICAgICAgICAkYXNt
LnB1dHMgIm11bHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmxvICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmhpICN7b3BlcmFuZHNbM10ubWlw
c09wZXJhbmR9IgorICAgICAgICB3aGVuICJtb3Z6IgorICAgICAgICAgICAgJGFzbS5wdXRzICJt
b3Z6ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm1vdm4iCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIm1vdm4gI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3Bl
cmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAg
ICAgd2hlbiAic2x0IiwgInNsdGIiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJzbHR1IiwgInNsdHViIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0iCisgICAgICAg
IHdoZW4gInBpY2hkciIKKyAgICAgICAgICAgICRhc20ucHV0U3RyKCJPRkZMSU5FX0FTTV9DUExP
QUQoJDI1KSIpCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgJHM0LCAkZ3AiCisgICAgICAg
IHdoZW4gInBpY2hkcnJhIgorICAgICAgICAgICAgJGFzbS5wdXRTdHIoIk9GRkxJTkVfQVNNX0NQ
TE9BRCgkMzEpIikKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAkczQsICRncCIKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIlVuaGFuZGxlZCBvcGNvZGUgI3tvcGNvZGV9IGF0
ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgppbmRleCA0NGI0ZGJkLi40OTFhM2NjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKQEAgLTYzLDEwICs2Myw2
IEBAIGRlZiByaXNjTG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sIG9wLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKICAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGJyYW5jaCwgW25v
ZGUub3BlcmFuZHNbLTFdXSkKLSAgICAgICAgICAgIHdoZW4gJ2JtdWxpcycsICdibXVseicsICdi
bXVsbnonCi0gICAgICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAotICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11
bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKLSAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0
aW9uLCBbbm9kZS5vcGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgICAgIGVuZApA
QCAtOTMsMTIgKzg5LDIyIEBAIGRlZiByaXNjTG93ZXJIYXJkQnJhbmNoT3BzKGxpc3QpCiAgICAg
bmV3TGlzdCA9IFtdCiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKLSAgICAgICAg
aWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbiBhbmQgbm9kZS5vcGNvZGUgPT0gImJtdWxpbyIKLSAg
ICAgICAgICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAg
ICAgIHRtcDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtub2Rl
Lm9wZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAxXSwg
bm9kZS5hbm5vdGF0aW9uKQotICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLCAicnNoaWZ0aSIsIFtub2RlLm9wZXJhbmRzWy0yXSwgSW1tZWRpYXRl
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIDMxKSwgdG1wMl0pCi0gICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBu
b2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAg
ICAgICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KKyAgICAgICAgICAgIGNhc2Ug
bm9kZS5vcGNvZGUKKyAgICAgICAgICAgIHdoZW4gICJibXVsaW8iCisgICAgICAgICAgICAgICAg
dG1wMSA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIHRt
cDIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJzbXVsbGkiLCBbbm9kZS5v
cGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wMV0sIG5v
ZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1lZGlh
dGUubmV3KG5vZGUuY29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0
bXAyLCBub2RlLm9wZXJhbmRzWy0xXV0pCisgICAgICAgICAgICB3aGVuIC9eYm11bGkvCisgICAg
ICAgICAgICAgICAgY29uZGl0aW9uID0gJH4ucG9zdF9tYXRjaAorICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9w
ZXJhbmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJidGkiICsgY29uZGl0aW9uLCBbbm9kZS5v
cGVyYW5kc1stMl0sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKICAgICAgICAgZW5kCkBAIC00NDcsNyArNDUz
LDcgQEAgZGVmIHJpc2NBc1JlZ2lzdGVycyhwcmVMaXN0LCBwb3N0TGlzdCwgb3BlcmFuZHMsIHN1
ZmZpeCkKICAgICBuZXdPcGVyYW5kcwogZW5kCiAKLWRlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRy
ZXNzZXMobGlzdCkKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24obGlzdCkK
ICAgICBuZXdMaXN0ID0gW10KICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfApAQCAt
NDgzLDYgKzQ4OSwyNSBAQCBkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJz
KG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJkIiksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbikKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3
TGlzdAorZW5kCisKK2RlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhsaXN0
KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAgICAgIHwgbm9kZSB8Cisg
ICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgIHBvc3RJbnN0cnVj
dGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAiam1wIiwgImNhbGwi
CiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bj
b2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCAwMWJkYjI3Li41NzFlNzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEy
LTE4ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAg
TUlQUyBMTEludCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0xMi0xOCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1
cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzaG93IGNhY2hlZCBp
bWFnZXMgdW5kZXIgTWVtb3J5Q2FjaGUgLT4gSW1hZ2VzIHNlY3Rpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4
IGYyZmQzYjAuLmUzMWU1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtOTI3LDcgKzkyNyw3IEBACiAgICAg
JiYgRU5BQkxFKEpJVCkgXAogICAgICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSkgXAogICAg
ICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShRVCkpIFwKLSAgICAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFS
TV9USFVNQjIpKQorICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RI
VU1CMikgfHwgQ1BVKE1JUFMpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181313</attachid>
            <date>2013-01-04 09:18:34 -0800</date>
            <delta_ts>2013-01-07 10:50:14 -0800</delta_ts>
            <desc>LLInt implementation for MIPS reusing risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>56666</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDcyYTJjNjkuLjkyMWE3YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTA0ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVt
cCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQv
SklUU3R1YnMuaDoKKyAgICAgICAgKEpJVFN0YWNrRnJhbWUpOgorICAgICAgICAqIGxsaW50L0xM
SW50T2ZmbGluZUFzbUNvbmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogb2ZmbGluZWFzbS9hcm12Ny5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2JhY2tl
bmRzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vbWlwcy5yYjogQWRkZWQuCisgICAgICAgICogb2ZmbGluZWFzbS9yaXNjLnJi
OgorCiAyMDEzLTAxLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgREZHOjpCeXRlQ29kZUNhY2hlIHNlcnZlcyBsaXR0bGUgb3Igbm8gcHVycG9zZSBldmVyIHNp
bmNlIHdlIGRlY2lkZWQgdG8ga2VlcCBieXRlY29kZSBhcm91bmQgcGVybWFuZW50bHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
CmluZGV4IDNhYjI1NTMuLjFiMWExMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMTMyMiw3ICsxMzIyLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBqdW1wKFJlZ2lzdGVySUQgdGFyZ2V0KQogICAgIHsKLSAgICAg
ICAgbV9hc3NlbWJsZXIuanIodGFyZ2V0KTsKKyAgICAgICAgbW92ZSh0YXJnZXQsIE1JUFNSZWdp
c3RlcnM6OnQ5KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuanIoTUlQU1JlZ2lzdGVyczo6dDkpOwog
ICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDg3MzY5YjcuLjBiZWE3YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNDcsNiArNDcsMTgg
QEAKIAogI2lmIEVOQUJMRShKSVQpCiAKKyNpZiBDUFUoTUlQUykKKyNpZiBXVEZfTUlQU19QSUMK
KyNkZWZpbmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgXAorICAgICAgICAiLnNldCBu
b3Jlb3JkZXIiICJcbiIgXAorICAgICAgICAiLmNwbG9hZCAkMjUiICJcbiIgXAorICAgICAgICAi
LnNldCByZW9yZGVyIiAiXG4iIFwKKyAgICAgICAgImxhICR0OSwgIiBMT0NBTF9SRUZFUkVOQ0Uo
ZnVuY3Rpb24pICJcbiIKKyNlbHNlCisjZGVmaW5lIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rp
b24pICIiICJcbiIKKyNlbmRpZgorI2VuZGlmCisKICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2lm
IENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4Nl82NCkKQEAgLTIwMSw2ICsyMTMsNTIgQEAKICAgICAg
ICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxu
IiBcCiAgICAgKTsKIAorI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoTUlQUykKKworI2RlZmlu
ZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXAorICAg
IGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkco
ZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBT
WU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19U
OShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgIm1vdmUgJGExLCAkcmEi
ICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1
cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lU
SF9SRVRVUk5fQUREUkVTU19FQ0koZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAgICAiLnRleHQi
ICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAg
ICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5jdGlv
bikgIjoiICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24jI1dpdGhSZXR1
cm5BZGRyZXNzKSBcCisgICAgICAgICJtb3ZlICRhMywgJHJhIiAiXG4iIFwKKyAgICAgICAgImIg
IiBMT0NBTF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisg
ICAgKTsKKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpJ
KGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmdsb2Js
ICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rp
b24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICBM
T0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVzcykgXAorICAgICAg
ICAic3cgJHJhLCAyMCgkc3ApIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0Uo
ZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBG
VU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAg
IGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkco
ZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBT
WU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5DVElPTl9UT19U
OShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgInN3ICRyYSwgMjQoJHNw
KSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJl
dHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisKICNlbmRpZgogCiAjZGVmaW5lIFBfRlVOQ1RJ
T05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0UoZnVuY3Rpb24pIFwKQEAgLTE2MzgsNiAr
MTY5NiwxNyBAQCBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4i
CiAgICAgIm1vdiByMCwgcjUiICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0
Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKKyNlbGlmIENPTVBJTEVSKEdD
QykgJiYgQ1BVKE1JUFMpCithc20oCisiLnRleHQiICJcbiIKKyIuZ2xvYmwgIiBTWU1CT0xfU1RS
SU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK0hJREVfU1lNQk9MKGdldEhvc3RDYWxs
UmV0dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkg
IjoiICJcbiIKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVX
aXRoRXhlY1N0YXRlKQorICAgICJsdyAkczAsIC00MCgkczApIiAiXG4iCisgICAgIm1vdmUgJGEw
LCAkczAiICJcbiIKKyAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZh
bHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgorKTsKICNlbmRpZgogCiBleHRlcm4gIkMiIEVuY29kZWRK
U1ZhbHVlIEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVicy5jcHAKaW5kZXggZTQ4YzVlMy4uNmUxNTA5YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5jcHAKQEAgLTI4MCwxMSArMjgwLDEzIEBAIGV4dGVybiAiQyIgewogI2Rl
ZmluZSBQUkVTRVJWRURfUzBfT0ZGU0VUICAgICAgICAgNjQKICNkZWZpbmUgUFJFU0VSVkVEX1Mx
X09GRlNFVCAgICAgICAgIDY4CiAjZGVmaW5lIFBSRVNFUlZFRF9TMl9PRkZTRVQgICAgICAgICA3
MgotI2RlZmluZSBQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDc2Ci0jZGVmaW5lIFRI
VU5LX1JFVFVSTl9BRERSRVNTX09GRlNFVCA4MAotI2RlZmluZSBSRUdJU1RFUl9GSUxFX09GRlNF
VCAgICAgICAgODQKLSNkZWZpbmUgR0xPQkFMX0RBVEFfT0ZGU0VUICAgICAgICAgMTAwCi0jZGVm
aW5lIFNUQUNLX0xFTkdUSCAgICAgICAgICAgICAgIDEwNAorI2RlZmluZSBQUkVTRVJWRURfUzNf
T0ZGU0VUICAgICAgICAgNzYKKyNkZWZpbmUgUFJFU0VSVkVEX1M0X09GRlNFVCAgICAgICAgIDgw
CisjZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQgODQKKyNkZWZpbmUgVEhV
TktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDg4CisjZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VU
ICAgICAgICA5MgorI2RlZmluZSBHTE9CQUxfREFUQV9PRkZTRVQgICAgICAgICAxMDgKKyNkZWZp
bmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAgICAgMTEyCiAjZWxpZiBDUFUoU0g0KQogI2RlZmlu
ZSBTWU1CT0xfU1RSSU5HKG5hbWUpICNuYW1lCiAvKiBjb2RlIChyNCksIEpTU3RhY2sqIChyNSks
IENhbGxGcmFtZSogKHI2KSwgdm9pZCogdW51c2VkMSAocjcpLCB2b2lkKiB1bnVzZWQyKHNwKSwg
SlNHbG9iYWxEYXRhIChzcCkqLwpAQCAtNDUxLDYgKzQ1Myw4IEBAIGFzbSAoCiBTWU1CT0xfU1RS
SU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImFkZGl1ICQyOSwkMjksLSIgU1RSSU5H
SVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogICAgICJzdyAgICAkMzEsIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4i
CisgICAgInN3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKKyAgICAic3cgICAgJDE5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTgsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgInN3ICAgICQx
NywiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIK
ICAgICAic3cgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQp
ICIoJDI5KSIgIlxuIgpAQCAtNDY3LDEyICs0NzEsMTcgQEAgU1lNQk9MX1NUUklORyhjdGlUcmFt
cG9saW5lKSAiOiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAg
JDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxu
IgorICAgICJsdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNF
VCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzRfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgog
ICAgICJqciAgICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxV
RV9PRihTVEFDS19MRU5HVEgpICJcbiIKICIuc2V0IHJlb3JkZXIiICJcbiIKICIuc2V0IG1hY3Jv
IiAiXG4iCiAiLmVuZCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIlxuIgorIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIlxuIgorSElERV9TWU1CT0woY3Rp
VHJhbXBvbGluZUVuZCkgIlxuIgorU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIg
IlxuIgogKTsKIAogYXNtICgKQEAgLTQ4NSw4ICs0OTQsOCBAQCBhc20gKAogIi5lbnQgIiBTWU1C
T0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGN0aVZN
VGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgogI2lmIFdURl9NSVBTX1BJQwotICAgICJsdyAgICAk
MjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQX09GRlNFVCkgIigkMjkpIiAiXG4i
CiAiLnNldCBtYWNybyIgIlxuIgorIi5jcGxvYWQgJDMxIiAiXG4iCiAgICAgImxhICAgICQyNSwi
IFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCiAiLnNldCBub21hY3JvIiAiXG4iCiAg
ICAgImJhbCAiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCkBAIC00OTgsNiArNTA3
LDggQEAgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKICAgICAi
bHcgICAgJDE2LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMF9PRkZTRVQpICIoJDI5
KSIgIlxuIgogICAgICJsdyAgICAkMTcsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mx
X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzJfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDE5LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TM19PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJs
dyAgICAkMjAsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1M0X09GRlNFVCkgIigkMjkp
IiAiXG4iCiAgICAgImx3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVU
VVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAianIgICAgJDMxIiAiXG4iCiAg
ICAgImFkZGl1ICQyOSwkMjksIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAiXG4i
CkBAIC01MTgsNiArNTI5LDggQEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAi
OiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mw
X09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDE4LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJs
dyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkp
IiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzRf
T0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJqciAg
ICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0laRV9WQUxVRV9PRihTVEFD
S19MRU5HVEgpICJcbiIKQEAgLTEwNjcsOSArMTA4MCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0YXRpYyBUIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbChKSVRTdGFja0ZyYW1lJiBqaXRTdGFj
a0ZyCiAgICAgICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAg
ICAgICAgIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiXG4iIFwKICAgICAgICAgU1lN
Qk9MX1NUUklORyhjdGlfIyNvcCkgIjoiICJcbiIgXAotICAgICAgICAibHcgICAgJDI4LCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9HUF9PRkZTRVQpICIoJDI5KSIgIlxuIiBcCi0gICAg
ICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUKSAiKCQyOSkiICJcbiIgXAogICAgICAgICAiLnNldCBtYWNybyIgIlxuIiBcCisgICAg
ICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICJzdyAgICAkMzEsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIgXAogICAg
ICAgICAibGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhKSVRTdHViVGh1bmtlZF8jI29wKSAiXG4i
IFwKICAgICAgICAgIi5zZXQgbm9tYWNybyIgIlxuIiBcCiAgICAgICAgICIucmVsb2MgMWYsUl9N
SVBTX0pBTFIsIiBTWU1CT0xfU1RSSU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCmluZGV4IDQzZGMwMWMuLmNhMGYyNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKQEAgLTIxOCw2ICsyMTgsOCBAQCBzdHJ1Y3Qg
SklUU3RhY2tGcmFtZSB7CiAgICAgdm9pZCogcHJlc2VydmVkUzA7CiAgICAgdm9pZCogcHJlc2Vy
dmVkUzE7CiAgICAgdm9pZCogcHJlc2VydmVkUzI7CisgICAgdm9pZCogcHJlc2VydmVkUzM7Cisg
ICAgdm9pZCogcHJlc2VydmVkUzQ7CiAgICAgdm9pZCogcHJlc2VydmVkUmV0dXJuQWRkcmVzczsK
IAogICAgIFJldHVybkFkZHJlc3NQdHIgdGh1bmtSZXR1cm5BZGRyZXNzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCmluZGV4IGRh
MmQ1MTAuLjE1NzUyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludE9mZmxpbmVBc21Db25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNkZWZpbmUgT0ZGTElO
RV9BU01fQVJNdjcgMAogI2RlZmluZSBPRkZMSU5FX0FTTV9YODZfNjQgMAogI2RlZmluZSBPRkZM
SU5FX0FTTV9BUk12N3MgMAorI2RlZmluZSBPRkZMSU5FX0FTTV9NSVBTIDAKIAogI2Vsc2UgLy8g
IUVOQUJMRShMTElOVF9DX0xPT1ApCiAKQEAgLTY3LDYgKzY4LDEyIEBACiAjZGVmaW5lIE9GRkxJ
TkVfQVNNX1g4Nl82NCAwCiAjZW5kaWYKIAorI2lmIENQVShNSVBTKQorI2RlZmluZSBPRkZMSU5F
X0FTTV9NSVBTIDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMAorI2VuZGlmCisK
ICNlbmRpZiAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogI2lmIFVTRShKU1ZBTFVFNjQpCkBA
IC0xMTEsNCArMTE4LDE3IEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX1ZBTFVFX1BST0ZJTEVSIDAK
ICNlbmRpZgogCisjaWYgQ1BVKE1JUFMpCisjaWZkZWYgV1RGX01JUFNfUElDCisjZGVmaW5lIFMo
eCkgI3gKKyNkZWZpbmUgU1goeCkgUyh4KQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVn
KSBcCisgICAgIi5zZXQgbm9yZW9yZGVyXG4iIFwKKyAgICAiLmNwbG9hZCAiIFNYKHJlZykgIlxu
IiBcCisgICAgIi5zZXQgcmVvcmRlclxuIgorI2Vsc2UKKyNkZWZpbmUgT0ZGTElORV9BU01fQ1BM
T0FEKHJlZykKKyNlbmRpZgorI2VuZGlmCisKICNlbmRpZiAvLyBMTEludE9mZmxpbmVBc21Db25m
aWdfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtCmluZGV4IDAwZDVjNGYuLjlkZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTE4MiwxMCArMTgy
LDggQEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKIGVuZAogCiBtYWNybyBwcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKLSAgICBpZiBDX0xPT1AKLSAg
ICAgICAgIyBJbiBvdXIgY2FzZSwgd2UncmUgb25seSBwcmVzZXJ2aW5nIHRoZSBieXRlY29kZSB2
UEMuIAotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCi0gICAgZWxzaWYgQVJN
djcKKyAgICBpZiBDX0xPT1Agb3IgQVJNdjcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9PUCBj
YXNlLCB3ZSdyZSBvbmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAgICAgICAgbW92
ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAg
ICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKQEAgLTE5NSwxMCArMTkzLDggQEAgbWFjcm8gcHJl
c2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiBlbmQKIAog
bWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIpCi0g
ICAgaWYgQ19MT09QCi0gICAgICAgICMgSW4gb3VyIGNhc2UsIHdlJ3JlIG9ubHkgcmVzdG9yaW5n
IHRoZSBieXRlY29kZSB2UEMuIAotICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgotICAg
IGVsc2lmIEFSTXY3CisgICAgaWYgQ19MT09QIG9yIEFSTXY3IG9yIE1JUFMKKyAgICAgICAgIyBJ
biBDX0xPT1AgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KICAg
ICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKICAgICBlbHNpZiBYODYgb3IgWDg2XzY0CiAg
ICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggZDcyNzQ3OC4u
OTgwOTdiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTExMyw2ICsxMTMsMTAgQEAgbWFjcm8gY0Nh
bGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQogICAgICAgICBwb2tlIGFyZzEsIDAKICAgICAgICAg
cG9rZSBhcmcyLCAxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24KKyAgICBlbHNpZiBNSVBTCisgICAg
ICAgIG1vdmUgYXJnMSwgYTAKKyAgICAgICAgbW92ZSBhcmcyLCBhMQorICAgICAgICBjYWxsIGZ1
bmN0aW9uCiAgICAgZWxzaWYgQ19MT09QCiAgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIGZ1bmN0
aW9uLCBhcmcxLCBhcmcyCiAgICAgZWxzZQpAQCAtMTM0LDYgKzEzOCwxMiBAQCBtYWNybyBjQ2Fs
bDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiAgICAgICAgIHBva2UgYXJnMywg
MgogICAgICAgICBwb2tlIGFyZzQsIDMKICAgICAgICAgY2FsbCBmdW5jdGlvbgorICAgIGVsc2lm
IE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAgICAgICBtb3ZlIGFyZzIsIGExCisgICAg
ICAgIG1vdmUgYXJnMywgYTIKKyAgICAgICAgbW92ZSBhcmc0LCBhMworICAgICAgICBjYWxsIGZ1
bmN0aW9uCiAgICAgZWxzaWYgQ19MT09QCiAgICAgICAgIGVycm9yCiAgICAgZWxzZQpAQCAtMTgy
OCw2ICsxODM4LDIwIEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZz
ZXRUb0Z1bmN0aW9uKQogICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3Qx
XQogICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKICAgICAgICAg
bG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgZWxzaWYgTUlQUwor
ICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICAgICAg
c3RvcmVwIGNmciwgSlNHbG9iYWxEYXRhOjp0b3BDYWxsRnJhbWVbdDNdCisgICAgICAgIG1vdmUg
dDAsIHQyCisgICAgICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MykKKyAgICAg
ICAgc3RvcmVwIHQzLCBSZXR1cm5QQ1tjZnJdCisgICAgICAgIG1vdmUgY2ZyLCB0MAorICAgICAg
ICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAgICAgIGxvYWRwIEpT
RnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCisgICAgICAgIG1vdmUgdDIsIGNmcgorICAg
ICAgICBtb3ZlIHQwLCBhMAorICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
W3QxXQorICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MykKKyAgICAg
ICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgZWxzaWYgQ19M
T09QCiAgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwogICAg
ICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRvcENhbGxGcmFtZVt0M10KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKaW5kZXggMDc4YmU4Yy4uZDdkMDRmYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKQEAgLTE3OSw3ICsx
NzksOCBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3Jt
ZWRBZGRyZXNzZXNEb3VibGUocmVzdWx0KQogICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNaXNw
bGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9y
bWVkSW1tZWRpYXRlcyhyZXN1bHQsIDAuLjB4ZmYpCi0gICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
ck1pc3BsYWNlZEFkZHJlc3NlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dlck1p
c3BsYWNlZEFkZHJlc3Nlc0NvbW1vbihyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
ck1pc3BsYWNlZEFkZHJlc3Nlc1NwZWNpZmljKHJlc3VsdCkKICAgICAgICAgcmVzdWx0ID0gcmlz
Y0xvd2VyUmVnaXN0ZXJSZXVzZShyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lz
dGVyc1RvVGVtcG9yYXJpZXMocmVzdWx0LCA6Z3ByLCBBUk12N19FWFRSQV9HUFJTKQogICAgICAg
ICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmZwciwgQVJN
djdfRVhUUkFfRlBSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2JhY2tlbmRzLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2Vu
ZHMucmIKaW5kZXggNzhlNTQ1Ny4uZWY5MzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYmFja2VuZHMucmIKQEAgLTI1LDYgKzI1LDcgQEAgcmVxdWlyZSAiY29uZmln
IgogcmVxdWlyZSAiYXJtdjciCiByZXF1aXJlICJhc3QiCiByZXF1aXJlICJ4ODYiCityZXF1aXJl
ICJtaXBzIgogcmVxdWlyZSAiY2xvb3AiCiAKIEJBQ0tFTkRTID0KQEAgLTMyLDYgKzMzLDcgQEAg
QkFDS0VORFMgPQogICAgICAiWDg2IiwKICAgICAgIlg4Nl82NCIsCiAgICAgICJBUk12NyIsCisg
ICAgICJNSVBTIiwKICAgICAgIkNfTE9PUCIKICAgICBdCiAKQEAgLTQ1LDYgKzQ3LDcgQEAgV09S
S0lOR19CQUNLRU5EUyA9CiAgICAgICJYODYiLAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3
IiwKKyAgICAgIk1JUFMiLAogICAgICAiQ19MT09QIgogICAgIF0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCmluZGV4IGUwNDdiMmEuLjRl
NzA2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIKQEAgLTI2NSw2ICsyNjUsMTYgQEAgQVJNdjdfSU5TVFJVQ1RJT05TID0KICAgICAg
Im9yaXMiCiAgICAgXQogCitNSVBTX0lOU1RSVUNUSU9OUyA9CisgICAgWworICAgICJtb3Z6IiwK
KyAgICAibW92biIsCisgICAgInNsdCIsCisgICAgInNsdHUiLAorICAgICJwaWNoZHIiLAorICAg
ICJwaWNoZHJyYSIKKyAgICBdCisKIENYWF9JTlNUUlVDVElPTlMgPQogICAgIFsKICAgICAgImNs
b29wQ3Jhc2giLCAgICAgICAgICAgIyBubyBvcGVyYW5kcwpAQCAtMjgxLDcgKzI5MSw3IEBAIENY
WF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAgICAgICAjIG5vIG9wZXJh
bmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5T
VFJVQ1RJT05TICsgQVJNdjdfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUworSU5TVFJV
Q1RJT05TID0gTUFDUk9fSU5TVFJVQ1RJT05TICsgWDg2X0lOU1RSVUNUSU9OUyArIEFSTXY3X0lO
U1RSVUNUSU9OUyArIE1JUFNfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9OUwogCiBJTlNU
UlVDVElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsgSU5TVFJVQ1RJT05TLmpvaW4o
Jyl8KCcpICsgJykpXFxaJykKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vbWlwcy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMu
cmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjMzNDQyZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL21pcHMucmIKQEAgLTAs
MCArMSw4NjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE1JUFMgVGVjaG5vbG9naWVzLCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTUlQ
UyBURUNITk9MT0dJRVMsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBNSVBT
IFRFQ0hOT0xPR0lFUywgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK3JlcXVpcmUgJ3Jpc2MnCisKK2NsYXNzIEFzc2VtYmxlcgorICAgIGRlZiBwdXRTdHIo
c3RyKQorICAgICAgICBAb3V0cC5wdXRzIHN0cgorICAgIGVuZAorZW5kCisKK2NsYXNzIE5vZGUK
KyAgICBkZWYgbWlwc1NpbmdsZUhpCisgICAgICAgIGRvdWJsZU9wZXJhbmQgPSBtaXBzT3BlcmFu
ZAorICAgICAgICByYWlzZSAiQm9ndXMgcmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1
bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAvXlwkZi8KKyAgICAgICAgIiRmIiArICgkfi5wb3N0X21h
dGNoLnRvX2kgKyAxKS50b19zCisgICAgZW5kCisgICAgZGVmIG1pcHNTaW5nbGVMbworICAgICAg
ICBkb3VibGVPcGVyYW5kID0gbWlwc09wZXJhbmQKKyAgICAgICAgcmFpc2UgIkJvZ3VzIHJlZ2lz
dGVyIG5hbWUgI3tkb3VibGVPcGVyYW5kfSIgdW5sZXNzIGRvdWJsZU9wZXJhbmQgPX4gL15cJGYv
CisgICAgICAgIGRvdWJsZU9wZXJhbmQKKyAgICBlbmQKK2VuZAorCitjbGFzcyBTcGVjaWFsUmVn
aXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIEBuYW1lCisg
ICAgZW5kCisKKyAgICBkZWYgZHVtcAorICAgICAgICBAbmFtZQorICAgIGVuZAorCisgICAgZGVm
IHJlZ2lzdGVyPworICAgICAgICB0cnVlCisgICAgZW5kCitlbmQKKworTUlQU19URU1QX0dQUlMg
PSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ1IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NiIp
LCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDciKSwKKyAgICAgICAgICAgICAgICAgICAgU3BlY2lh
bFJlZ2lzdGVyLm5ldygiJHQ4IildCitNSVBTX1RFTVBfRlBSUyA9IFtTcGVjaWFsUmVnaXN0ZXIu
bmV3KCIkZjE2IildCitNSVBTX1NDUkFUQ0hfRlBSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygiJGYx
OCIpCisKK2RlZiBtaXBzTW92ZUltbWVkaWF0ZSh2YWx1ZSwgcmVnaXN0ZXIpCisgICAgaWYgdmFs
dWUgPT0gMAorICAgICAgICAkYXNtLnB1dHMgImFkZCAje3JlZ2lzdGVyLm1pcHNPcGVyYW5kfSwg
JHplcm8sICR6ZXJvIgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJsaSAje3JlZ2lzdGVy
Lm1pcHNPcGVyYW5kfSwgI3t2YWx1ZX0iCisgICAgZW5kCitlbmQKKworCitjbGFzcyBSZWdpc3Rl
cklECisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3aGVu
ICJhMCIKKyAgICAgICAgICAgICIkYTAiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAg
IiRhMSIKKyAgICAgICAgd2hlbiAicjAiLCAidDAiCisgICAgICAgICAgICAiJHYwIgorICAgICAg
ICB3aGVuICJyMSIsICJ0MSIKKyAgICAgICAgICAgICIkdjEiCisgICAgICAgIHdoZW4gInQyIgor
ICAgICAgICAgICAgIiR0MiIKKyAgICAgICAgd2hlbiAidDMiCisgICAgICAgICAgICAiJHMzIgor
ICAgICAgICB3aGVuICJ0NCIgICAjIFBDIHJlZyBpbiBsbGludAorICAgICAgICAgICAgIiRzMiIK
KyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAiJHQ1IgorICAgICAgICB3aGVuICJ0NiIK
KyAgICAgICAgICAgICIkdDYiCisgICAgICAgIHdoZW4gInQ3IgorICAgICAgICAgICAgIiR0NyIK
KyAgICAgICAgd2hlbiAidDgiCisgICAgICAgICAgICAiJHQ4IgorICAgICAgICB3aGVuICJjZnIi
CisgICAgICAgICAgICAiJHMwIgorICAgICAgICB3aGVuICJsciIKKyAgICAgICAgICAgICIkcmEi
CisgICAgICAgIHdoZW4gInNwIgorICAgICAgICAgICAgIiRzcCIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVnaXN0
ZXJJRAorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hl
biAiZnQwIiwgImZyIgorICAgICAgICAgICAgIiRmMCIKKyAgICAgICAgd2hlbiAiZnQxIgorICAg
ICAgICAgICAgIiRmMiIKKyAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICAgICAgIiRmNCIKKyAg
ICAgICAgd2hlbiAiZnQzIgorICAgICAgICAgICAgIiRmNiIKKyAgICAgICAgd2hlbiAiZnQ0Igor
ICAgICAgICAgICAgIiRmOCIKKyAgICAgICAgd2hlbiAiZnQ1IgorICAgICAgICAgICAgIiRmMTAi
CisgICAgICAgIHdoZW4gImZhMCIKKyAgICAgICAgICAgICIkZjEyIgorICAgICAgICB3aGVuICJm
YTEiCisgICAgICAgICAgICAiJGYxNCIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2Ug
IkJhZCByZWdpc3RlciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisg
ICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiBtaXBz
T3BlcmFuZAorICAgICAgICByYWlzZSAiSW52YWxpZCBpbW1lZGlhdGUgI3t2YWx1ZX0gYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIgaWYgdmFsdWUgPCAtMHg3ZmZmIG9yIHZhbHVlID4gMHg3ZmZmCisg
ICAgICAgICIje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVm
IG1pcHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iIGlmIG9mZnNldC52YWx1ZSA8IC0weDdmZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHg3ZmZm
CisgICAgICAgICIje29mZnNldC52YWx1ZX0oI3tiYXNlLm1pcHNPcGVyYW5kfSkiCisgICAgZW5k
CitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAg
ICAgIHJhaXNlICJVbmNvbnZlcnRlZCBhYnNvbHV0ZSBhZGRyZXNzIGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iCisgICAgZW5kCitlbmQKKworIworIyBMb3dlciAnYW5kJyBtYXNrZWQgYnJhbmNoZXMK
KyMKKworZGVmIGxvd2VyTUlQU0NvbmRCcmFuY2gobGlzdCwgY29uZE9wLCBub2RlKQorICAgIGlm
IG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZE9w
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9kZS5vcGVyYW5kc1swXSwgU3Bl
Y2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1stMV1dLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlLmFubm90YXRpb24pCisgICAgZWxzaWYgbm9kZS5v
cGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZGkiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1w
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAg
ICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbmRPcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW3RtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKSwgbm9kZS5vcGVyYW5kc1st
MV1dKQorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgIkV4cGVjdGVkIDIgb3IgMyBvcGVyYW5kcyBi
dXQgZ290ICN7bm9kZS5vcGVyYW5kcy5zaXplfSBhdCAje25vZGUuY29kZU9yaWdpblN0cmluZ30i
CisgICAgZW5kCitlbmQKKworIworIyBMb3dlcmluZyBvZiBicmFuY2ggb3BzLiBGb3IgZXhhbXBs
ZToKKyMKKyMgYmFkZGl6IGZvbywgYmFyLCBiYXoKKyMKKyMgd2lsbCBiZWNvbWU6CisjCisjIGFk
ZGkgZm9vLCBiYXIKKyMgYnogYmF6CisjCisKK2RlZiBtaXBzTG93ZXJTaW1wbGVCcmFuY2hPcHMo
bGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUg
fAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICBhbm5vdGF0
aW9uID0gbm9kZS5hbm5vdGF0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAg
ICAgICAgICB3aGVuIC9eYihhZGRpfHN1Yml8b3JpfGFkZHApLworICAgICAgICAgICAgICAgIG9w
ID0gJDEKKyAgICAgICAgICAgICAgICBiYyA9ICR+LnBvc3RfbWF0Y2gKKyAgICAgICAgICAgICAg
ICBicmFuY2ggPSAiYiIgKyBiYworCisgICAgICAgICAgICAgICAgY2FzZSBvcAorICAgICAgICAg
ICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAiYWRk
aSIKKyAgICAgICAgICAgICAgICB3aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICBvcCA9
ICJzdWJpIgorICAgICAgICAgICAgICAgIHdoZW4gIm9yaSIKKyAgICAgICAgICAgICAgICAgICAg
b3AgPSAib3JpIgorICAgICAgICAgICAgICAgIGVuZAorCisgICAgICAgICAgICAgICAgemVybyA9
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIikKKyAgICAgICAgICAgICAgICBpZiBiYyA9PSAi
byIKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgICAgICB3aGVu
ICJhZGRpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgYWRkdSAkczAsICRzMSwgJHMyCisg
ICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAgICAg
ICAgICAgICAgICAgIyAgYmx0ICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAgICAg
ICAgICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAgICAg
IyAgYmx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAjIG5v
IG92ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAg
ICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbm9GbG93ID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vZmxvdyIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBub0Zsb3dSZWYgPSBMb2NhbExhYmVsUmVmZXJlbmNlLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIG5vRmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRzWzBd
LCBub2RlLm9wZXJhbmRzWzFdLCB0cl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwg
W25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcF0pCisgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJi
aWx0IiwgW3RtcCwgemVybywgbm9GbG93UmVmXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInhvcmkiLCBbdHIsIG5v
ZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaWx0IiwgW3RtcCwgemVybywgbm9k
ZS5vcGVyYW5kc1syXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vRmxv
dworICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAibW92ZSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXV0pCisgICAgICAgICAg
ICAgICAgICAgIHdoZW4gInN1YmkiCisgICAgICAgICAgICAgICAgICAgICAgICAjICBzdWJ1ICRz
MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMSwgJHMy
CisgICAgICAgICAgICAgICAgICAgICAgICAjICBiZ2UgJHQwLCAkemVybywgbm8gb3ZlcmZsb3cK
KyAgICAgICAgICAgICAgICAgICAgICAgICMgIHhvciAkdDAsICRzMCwgJHMxCisgICAgICAgICAg
ICAgICAgICAgICAgICAjICBibHQgJHQwLCAkemVybywgb3ZlcmZsb3cKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgbm8gb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAg
ICAgICAgICAgICAgICAgICAgICB0ciA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpn
cHIpCisgICAgICAgICAgICAgICAgICAgICAgICB6ZXJvID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygi
JHplcm8iKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93ID0gTG9jYWxMYWJlbC51bmlx
dWUoIm5vZmxvdyIpCisgICAgICAgICAgICAgICAgICAgICAgICBub0Zsb3dSZWYgPSBMb2NhbExh
YmVsUmVmZXJlbmNlLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vRmxvdykKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3As
IFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0cl0sIGFubm90YXRpb24pCisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sICJ4b3JpIiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRt
cF0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJiaWd0ZXEiLCBbdG1wLCB6ZXJvLCBub0Zsb3dSZWZdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAieG9yaSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJp
bHQiLCBbdG1wLCB6ZXJvLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9GbG93CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW3RyLCBub2RlLm9wZXJh
bmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAib3JpIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIyBubyBvdndlcmZsb3cgYXQgb3JpCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJh
bmRzWzAuLjFdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMV0uaXNf
YT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgYWRkciA9IG5vZGUub3BlcmFuZHNb
MV0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4s
IDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sICJsb2FkcCIsIFthZGRyLCB0cl0sIGFubm90YXRpb24pCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgdHJdKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVwIiwg
W3RyLCBhZGRyXSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgdHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJhbmRz
WzAuLi0yXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgYnJh
bmNoLCBbdHIsIHplcm8sIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgICAgICBlbmQK
KyAgICAgICAgICAgIHdoZW4gImJpYSIsICJicGEiLCAiYmJhIgorICAgICAgICAgICAgICAgIHRt
cCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAg
PSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0
bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF1dLCBhbm5vdGF0aW9uKQorICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
ImJueiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiksIG5vZGUub3BlcmFuZHNb
Ml1dKQorICAgICAgICAgICAgd2hlbiAiYmlhZXEiLCAiYnBhZXEiLCAiYmJhZXEiCisgICAgICAg
ICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAg
ICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8gInNsdHViIiA6ICJzbHR1Igor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXV0sIGFubm90
YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCAiYnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkemVybyIpLCBub2Rl
Lm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJpYiIsICJicGIiLCAiYmJiIgorICAg
ICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAg
ICAgICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxLDFdID09ICJiIiA/ICJzbHR1YiIgOiAic2x0
dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBh
bm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgImJueiIsIFt0bXAsIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6ZXJvIiks
IG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYmliZXEiLCAiYnBiZXEiLCAi
YmJiZXEiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpn
cHIpCisgICAgICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzEsMV0gPT0gImIiID8gInNs
dHViIiA6ICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVy
YW5kc1swXV0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnoiLCBbdG1wLCBTcGVjaWFsUmVnaXN0ZXIubmV3
KCIkemVybyIpLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJ0aXoiLCAi
YnRweiIsICJidGJ6IgorICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlz
dCwgImJ6Iiwgbm9kZSkKKyAgICAgICAgICAgIHdoZW4gImJ0aW56IiwgImJ0cG56IiwgImJ0Ym56
IgorICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJueiIsIG5v
ZGUpCisgICAgICAgICAgICB3aGVuICJidGlvIiwgImJ0cG8iLCAiYnRibyIKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIHdoZW4gImJ0aXMiLCAiYnRwcyIsICJi
dGJzIgorICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJzIiwg
bm9kZSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUK
KyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5v
ZGUKKyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxp
emF0aW9uIG9mIGxvd2VyaW5nIG9mIG1hbGZvcm1lZCBCYXNlSW5kZXggYWRkcmVzc2VzLgorIwor
CitjbGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzUmVj
dXJzZShsaXN0LCBub2RlLCAmYmxvY2spCisgICAgICAgIGlmIHNjYWxlU2hpZnQgPT0gMAorICAg
ICAgICAgICAgdG1wMCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIGluZGV4LCB0
bXAwXSkKKyAgICAgICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcDAsIEltbWVkaWF0
ZS5uZXcoY29kZU9yaWdpbiwgb2Zmc2V0LnZhbHVlKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRtcDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibHNoaWZ0aSIsIFtpbmRleCwgSW1tZWRpYXRl
Lm5ldyhjb2RlT3JpZ2luLCBzY2FsZVNoaWZ0KSwgdG1wMF0pOworICAgICAgICAgICAgbGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFkZHAiLCBbYmFzZSwgdG1wMF0pCisgICAg
ICAgICAgICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNvZGVP
cmlnaW4sIG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisj
IExvd2VyaW5nIG9mIG1pc3BsYWNlZCBpbW1lZGlhdGVzIG9mIE1JUFMgc3BlY2lmaWMgaW5zdHJ1
Y3Rpb25zLiBGb3IgZXhhbXBsZToKKyMKKyMgc2x0dSByZWcsIDQsIDIKKyMKKyMgd2lsbCBiZWNv
bWU6CisjCisjIG1vdmUgNCwgdG1wCisjIHNsdHUgcmVnLCB0bXAsIDIKKyMKKworZGVmIG1pcHNM
b3dlck1pc3BsYWNlZEltbWVkaWF0ZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0
LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0
aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJzbHQi
LCAic2x0dSIsICJzbHRiIiwgInNsdHViIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFu
ZHNbMV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXco
bm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMV0s
IHRtcF0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIHRt
cCwgbm9kZS5vcGVyYW5kc1syXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAg
ICAgZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAg
ICBlbmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgU3BlY2lhbGl6YXRpb24gb2Yg
bG93ZXJpbmcgb2YgbWlzcGxhY2VkIGFkZHJlc3Nlcy4KKyMKKworZGVmIG1pcHNMb3dlck1pc3Bs
YWNlZEFkZHJlc3Nlc1NwZWNpZmljKGxpc3QpCisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5l
YWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlv
bgorICAgICAgICAgICAgcG9zdEluc3RydWN0aW9ucyA9IFtdCisgICAgICAgICAgICBhbm5vdGF0
aW9uID0gbm9kZS5hbm5vdGF0aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAg
ICAgICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5h
ZGRyZXNzPworICAgICAgICAgICAgICAgICAgICB0bXAgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIk
cmEiKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
Lm9wZXJhbmRzWzBdLmNvZGVPcmlnaW4sICJsb2FkaSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBd
KQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbdG1wXSkKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5v
cGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFty
aXNjQXNSZWdpc3RlcihuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzWzBd
LCAicCIsIGZhbHNlKV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICB3aGVuICJj
YWxsIgorICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IGZhbHNlOworICAgICAgICAgICAgICAg
IGlmIG5vZGUub3BlcmFuZHNbMF0uYWRkcmVzcz8KKyAgICAgICAgICAgICAgICAgICAgdG1wID0g
U3BlY2lhbFJlZ2lzdGVyLm5ldygiJHQ5IikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5kc1swXS5jb2RlT3JpZ2luLCAibG9hZHAiLCBb
bm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdG9yZUdQID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IExhYmVs
UmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IG5vZGUub3BlcmFuZHNbMF0KKyAg
ICAgICAgICAgICAgICAgICAgcmVzdG9yZUdQID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBlbHNp
ZiBub2RlLm9wZXJhbmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgICAgICB0bXAgPSBT
cGVjaWFsUmVnaXN0ZXIubmV3KCIkdDkiKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8
IEluc3RydWN0aW9uLm5ldyhub2RlLm9wZXJhbmRzWzBdLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25v
ZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0bXAgPSBub2Rl
Lm9wZXJhbmRzWzBdCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW3RtcF0p
CisgICAgICAgICAgICAgICAgaWYgcmVzdG9yZUdQCisgICAgICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdmUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHM0Iiks
IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRncCIpXSkKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIHdoZW4gInNsdCIsICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFu
ZHMsICJpIikpCisgICAgICAgICAgICB3aGVuICJzbHR1YiIsICJzbHRiIgorICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlz
dCwgW10sIG5vZGUub3BlcmFuZHMsICJiIikpCisgICAgICAgICAgICB3aGVuICJieiIsICJibnoi
LCAiYnMiLCAiYm8iCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
bm9kZS5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vZGUub3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJpc2NBc1JlZ2lzdGVycyhuZXdMaXN0LCBbXSwgbm9kZS5vcGVyYW5kcywgImkiKSkKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICAgICAgbmV3TGlzdCArPSBwb3N0SW5zdHJ1Y3Rpb25zCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9Cisg
ICAgbmV3TGlzdAorZW5kCisKKyMKKyMgTG93ZXJpbmcgY29tcGFyZXMgYW5kIHRlc3RzLgorIwor
CitkZWYgbWlwc0xvd2VyQ29tcGFyZVRlbXBsYXRlKGxpc3QsIG5vZGUsIG9wQ21wLCBvcE1vdikK
KyAgICB0bXAwID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgdG1wMSA9IFRt
cC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbSW1tZWRpYXRlLm5ldyhuaWwsIDApLCBub2RlLm9w
ZXJhbmRzWzJdXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IG9wQ21wLCBbbm9kZS5vcGVyYW5kc1sxXSwgbm9kZS5vcGVyYW5kc1swXSwgdG1wMF0pCisgICAg
bGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtJbW1lZGlh
dGUubmV3KG5pbCwgMSksIHRtcDFdKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgb3BNb3YsIFtub2RlLm9wZXJhbmRzWzJdLCB0bXAxLCB0bXAwXSkKK2VuZAor
CitkZWYgbWlwc0xvd2VyQ29tcGFyZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0
LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0
aW9uCisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJjaWVx
IiwgImNwZXEiLCAiY2JlcSIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxh
dGUobmV3TGlzdCwgbm9kZSwgInN1YnAiLCAibW92eiIpCisgICAgICAgICAgICB3aGVuICJjaW5l
cSIsICJjcG5lcSIsICJjYm5lcSIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVt
cGxhdGUobmV3TGlzdCwgbm9kZSwgInN1YnAiLCAibW92biIpCisgICAgICAgICAgICB3aGVuICJ0
aXoiLCAidGJ6IiwgInRweiIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxh
dGUobmV3TGlzdCwgbm9kZSwgImFuZHAiLCAibW92eiIpCisgICAgICAgICAgICB3aGVuICJ0aW56
IiwgInRibnoiLCAidHBueiIKKyAgICAgICAgICAgICAgICBtaXBzTG93ZXJDb21wYXJlVGVtcGxh
dGUobmV3TGlzdCwgbm9kZSwgImFuZHAiLCAibW92biIpCisgICAgICAgICAgICB3aGVuICJ0aW8i
LCAidGJvIiwgInRwbyIKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9y
aWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJhbmRwIiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0s
IHRtcF0pCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAic2x0IiwgW25vZGUub3BlcmFuZHNbMl0sIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR6
ZXJvIiksIHRtcF0pCisgICAgICAgICAgICB3aGVuICJ0aXMiLCAidGJzIiwgInRwcyIKKyAgICAg
ICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAg
ICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJhbmRwIiwg
W25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAg
ICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic2x0IiwgW25vZGUu
b3BlcmFuZHNbMl0sIHRtcCwgU3BlY2lhbFJlZ2lzdGVyLm5ldygiJHplcm8iKV0pCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVu
ZAorICAgIH0KKyAgICBuZXdMaXN0CitlbmQKKworIworIyBMZWEgc3VwcG9ydC4KKyMKKworY2xh
c3MgQWRkcmVzcworICAgIGRlZiBtaXBzRW1pdExlYShkZXN0aW5hdGlvbikKKyAgICAgICAgaWYg
ZGVzdGluYXRpb24gPT0gYmFzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAje2Rlc3Rp
bmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tvZmZzZXQudmFsdWV9IgorICAgICAgICBlbHNlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICN7ZGVzdGluYXRpb24ubWlwc09wZXJhbmR9LCAje2Jh
c2UubWlwc09wZXJhbmR9LCAje29mZnNldC52YWx1ZX0iCisgICAgICAgIGVuZAorICAgIGVuZAor
ZW5kCisKKyMKKyMgQWRkIFBJQyBjb21wYXRpYmxlIGhlYWRlciBjb2RlIHRvIHByb2xvZ3VlL2Vu
dHJ5IHJ1dGlucy4KKyMKKworZGVmIG1pcHNBZGRQSUNDb2RlKGxpc3QpCisgICAgbXlMaXN0ID0g
W10KKyAgICBsaXN0LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBteUxpc3QgPDwg
bm9kZQorICAgICAgICBpZiBub2RlLmlzX2E/IExhYmVsCisgICAgICAgICAgICBpZiAvX3Byb2xv
Z3VlJC8ubWF0Y2gobm9kZS5uYW1lKSB8fCAvXl9sbGludF9mdW5jdGlvbl8vLm1hdGNoKG5vZGUu
bmFtZSkKKyAgICAgICAgICAgICAgICAjIEZ1bmN0aW9ucyBjYWxsZWQgZnJvbSB0cmFtcG9saW5l
L0pJVCBjb2Rlcy4KKyAgICAgICAgICAgICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwgInBpY2hkciIsIFtdKQorICAgICAgICAgICAgZWxzaWYgL19sbGludF9v
cF9jYXRjaC8ubWF0Y2gobm9kZS5uYW1lKQorICAgICAgICAgICAgICAgICMgRXhjZXB0aW9uIGNh
Y3RjaGVyIGVudHJ5IHBvaW50IGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgIG15TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAicGljaGRycmEiLCBbXSkKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICBlbmQKKyAgICB9CisgICAgbXlMaXN0CitlbmQKKworIworIyBBY3R1
YWwgbG93ZXJpbmcgY29kZSBmb2xsb3dzLgorIworCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiBn
ZXRNb2RpZmllZExpc3RNSVBTCisgICAgICAgIHJlc3VsdCA9IEBsaXN0CisKKyAgICAgICAgIyBW
ZXJpZnkgdGhhdCB3ZSB3aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgorICAg
ICAgICByZXN1bHQuZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgdW5s
ZXNzIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5p
c19hPyBMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwg
b3IKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAg
cmFpc2UgIlVuZXhwZWN0ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbWlwc0FkZFBJ
Q0NvZGUocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBtaXBzTG93ZXJTaW1wbGVCcmFuY2hPcHMo
cmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJIYXJkQnJhbmNoT3BzKHJlc3VsdCkK
KyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyU2hpZnRPcHMocmVzdWx0KQorICAgICAgICByZXN1
bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRBZGRyZXNzZXMocmVzdWx0KSB7CisgICAgICAgICAgICB8
IG5vZGUsIGFkZHJlc3MgfAorICAgICAgICAgICAgaWYgYWRkcmVzcy5pc19hPyBBZGRyZXNzCisg
ICAgICAgICAgICAgICAgKC0weGZmZmYuLjB4ZmZmZikuaW5jbHVkZT8gYWRkcmVzcy5vZmZzZXQu
dmFsdWUKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAg
ICAgZW5kCisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRk
cmVzc2VzRG91YmxlKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2Vk
SW1tZWRpYXRlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IG1pcHNMb3dlck1pc3BsYWNlZElt
bWVkaWF0ZXMocmVzdWx0KQorICAgICAgICByZXN1bHQgPSByaXNjTG93ZXJNYWxmb3JtZWRJbW1l
ZGlhdGVzKHJlc3VsdCwgLTB4ZmZmZi4uMHhmZmZmKQorICAgICAgICByZXN1bHQgPSByaXNjTG93
ZXJNaXNwbGFjZWRBZGRyZXNzZXNDb21tb24ocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBtaXBz
TG93ZXJNaXNwbGFjZWRBZGRyZXNzZXNTcGVjaWZpYyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9
IHJpc2NMb3dlclJlZ2lzdGVyUmV1c2UocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBtaXBzTG93
ZXJDb21wYXJlcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVt
cG9yYXJpZXMocmVzdWx0LCA6Z3ByLCBNSVBTX1RFTVBfR1BSUykKKyAgICAgICAgcmVzdWx0ID0g
YXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpmcHIsIE1JUFNfVEVNUF9GUFJT
KQorCisgICAgICAgIHJldHVybiByZXN1bHQKKyAgICBlbmQKK2VuZAorCitkZWYgbWlwc09wZXJh
bmRzKG9wZXJhbmRzKQorICAgIG9wZXJhbmRzLm1hcHt8dnwgdi5taXBzT3BlcmFuZH0uam9pbigi
LCAiKQorZW5kCisKK2RlZiBtaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKQorICAgIG1pcHNP
cGVyYW5kcyhbb3BlcmFuZHNbLTFdXSArIG9wZXJhbmRzWzAuLi0yXSkKK2VuZAorCitkZWYgZ2V0
TUlQU09wY29kZShvcGNvZGUsIHN1ZmZpeCkKKworZW5kCisKK2RlZiBlbWl0TUlQU0NvbXBhY3Qo
b3Bjb2RlLCBvcGNvZGVpLCBvcGVyYW5kcykKKyAgICBwb3N0Zml4ID0gIiIKKyAgICBpZiBvcGNv
ZGUgPT0gInN1YiIKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgICAgICBvcGNvZGUgPSAiYWRkIgorICAgICAgICAgICAgb3BlcmFuZHNbMF0gPSBJbW1lZGlh
dGUubmV3KG9wZXJhbmRzWzBdLmNvZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMF0udmFsdWUpCisg
ICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgb3Bj
b2RlID0gImFkZCIKKyAgICAgICAgICAgIG9wZXJhbmRzWzFdID0gSW1tZWRpYXRlLm5ldyhvcGVy
YW5kc1sxXS5jb2RlT3JpZ2luLCAtMSAqIG9wZXJhbmRzWzFdLnZhbHVlKQorICAgICAgICBlbmQK
KyAgICAgICAgcG9zdGZpeCA9ICJ1IgorICAgIGVsc2lmIG9wY29kZSA9PSAiYWRkIgorICAgICAg
ICBwb3N0Zml4ID0gInUiCisgICAgZW5kCisgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAg
ICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICIje29wY29kZX1pI3twb3N0Zml4fSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAgICBlbHNp
ZiBvcGVyYW5kc1sxXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiI3tv
cGNvZGV9aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0je3Bvc3RmaXh9ICN7bWlwc0ZsaXBwZWRPcGVy
YW5kcyhvcGVyYW5kcyl9IgorICAgICAgICBlbmQKKyAgICBlbHNlCisgICAgICAgIHJhaXNlIHVu
bGVzcyBvcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFd
LnJlZ2lzdGVyPworICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAg
ICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9aSN7cG9zdGZpeH0gI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0j
e3Bvc3RmaXh9ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIGVuZAorICAgIGVu
ZAorZW5kCisKK2RlZiBlbWl0TUlQU1NoaWZ0Q29tcGFjdChvcGNvZGUsIG9wZXJhbmRzKQorICAg
IGlmIG9wZXJhbmRzLnNpemUgPT0gMworICAgICAgICBpZiAob3BlcmFuZHNbMV0uaXNfYT8gSW1t
ZWRpYXRlKQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tvcGVyYW5kc1syXS5t
aXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLnZh
bHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX12ICN7
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICBlbmQKKyAgICBlbHNlCisg
ICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDIKKyAgICAgICAgaWYgb3BlcmFu
ZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfXYgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICIje29wY29kZX0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitl
bmQKKworZGVmIGVtaXRNSVBTKG9wY29kZSwgb3BlcmFuZHMpCisgICAgaWYgb3BlcmFuZHMuc2l6
ZSA9PSAzCisgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7bWlwc0ZsaXBwZWRPcGVyYW5k
cyhvcGVyYW5kcyl9IgorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNp
emUgPT0gMgorICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRzWzFdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9IgorICAgIGVuZAorZW5kCisKK2RlZiBlbWl0TUlQU0RvdWJsZUJyYW5jaChicmFuY2hP
cGNvZGUsIG5lZywgb3BlcmFuZHMpCisgICAgJGFzbS5wdXRzICJjLiN7YnJhbmNoT3Bjb2RlfS5k
ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0iCisgICAgaWYgKCFuZWcpCisgICAgICAg
ICRhc20ucHV0cyAiYmMxdCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICBlbHNlCisgICAg
ICAgICRhc20ucHV0cyAiYmMxZiAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICBlbmQKK2Vu
ZAorCitjbGFzcyBJbnN0cnVjdGlvbgorICAgIGRlZiBsb3dlck1JUFMKKyAgICAgICAgJGFzbS5j
b21tZW50IGNvZGVPcmlnaW5TdHJpbmcKKyAgICAgICAgY2FzZSBvcGNvZGUKKyAgICAgICAgd2hl
biAiYWRkaSIsICJhZGRwIiwgImFkZGlzIgorICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9
PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICAgICByYWlz
ZSB1bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgcmFpc2UgdW5s
ZXNzIG9wZXJhbmRzWzJdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBd
LnZhbHVlID09IDAgI2FuZCBzdWZmaXguZW1wdHk/CisgICAgICAgICAgICAgICAgICAgIHVubGVz
cyBvcGVyYW5kc1sxXSA9PSBvcGVyYW5kc1syXQorICAgICAgICAgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3ZlICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0iCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNpZiBvcGVyYW5k
cy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLnJlZ2lzdGVyPworICAgICAgICAgICAgICAgIHJh
aXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHNbMl0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGR1ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAg
ICAgICAgICAgICB1bmxlc3MgSW1tZWRpYXRlLm5ldyhuaWwsIDApID09IG9wZXJhbmRzWzBdCisg
ICAgICAgICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgImFkZHUgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJhbmRpIiwgImFuZHAiCisgICAg
ICAgICAgICBlbWl0TUlQU0NvbXBhY3QoImFuZCIsICJhbmQiLCBvcGVyYW5kcykKKyAgICAgICAg
d2hlbiAib3JpIiwgIm9ycCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgib3IiLCAib3Jy
Iiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm9yaXMiCisgICAgICAgICAgICBlbWl0TUlQU0Nv
bXBhY3QoIm9yIiwgIm9ycnMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAieG9yaSIsICJ4b3Jw
IgorICAgICAgICAgICAgZW1pdE1JUFNDb21wYWN0KCJ4b3IiLCAiZW9yIiwgb3BlcmFuZHMpCisg
ICAgICAgIHdoZW4gImxzaGlmdGkiLCAibHNoaWZ0cCIKKyAgICAgICAgICAgIGVtaXRNSVBTU2hp
ZnRDb21wYWN0KCJzbGwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAicnNoaWZ0aSIsICJyc2hp
ZnRwIgorICAgICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNyYSIsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJ1cnNoaWZ0aSIsICJ1cnNoaWZ0cCIKKyAgICAgICAgICAgIGVtaXRNSVBT
U2hpZnRDb21wYWN0KCJzcmwiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxw
IgorICAgICAgICAgICAgZW1pdE1JUFMoIm11bCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJz
dWJpIiwgInN1YnAiLCAic3ViaXMiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoInN1YiIs
ICJzdWJzIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibmVndSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm5vdGkiCisgICAgICAgICAgICAkYXNt
LnB1dHMgIm5vciAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBz
T3BlcmFuZH0sICR6ZXJvIgorICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAi
CisgICAgICAgICAgICAkYXNtLnB1dHMgImx3ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzdyAje21pcHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJsb2FkYiIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibGJ1ICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICB3aGVuICJsb2FkYnMiCisgICAgICAgICAgICAkYXNtLnB1dHMgImxiICN7
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJzdG9yZWIiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInNiICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsaHUgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRocyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibGggI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gInN0b3JlaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2h2ICN7bWlwc09wZXJhbmRz
KG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRkIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJsZGMxICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJz
dG9yZWQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNkYzEgI3ttaXBzT3BlcmFuZHMob3BlcmFu
ZHMpfSIKKyAgICAgICAgd2hlbiAiYWRkZCIKKyAgICAgICAgICAgIGVtaXRNSVBTKCJhZGQuZCIs
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAgZW1pdE1JUFMoImRp
di5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInN1YmQiCisgICAgICAgICAgICBlbWl0TUlQ
Uygic3ViLmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibXVsZCIKKyAgICAgICAgICAgIGVt
aXRNSVBTKCJtdWwuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJzcXJ0ZCIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAic3FydC5kICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9Igor
ICAgICAgICB3aGVuICJjaTJkIgorICAgICAgICAgICAgcmFpc2UgImludmFsaWQgb3BzIG9mICN7
c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHNbMV0u
aXNfYT8gRlBSZWdpc3RlcklEIGFuZCBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAg
ICRhc20ucHV0cyAibXRjMSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC5kLncgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICB3
aGVuICJiZGVxIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwgZmFsc2Us
IG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZG5lcSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91
YmxlQnJhbmNoKCJ1ZXEiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRndCIKKyAg
ICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJ1bGUiLCB0cnVlLCBvcGVyYW5kcykKKyAg
ICAgICAgd2hlbiAiYmRndGVxIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVs
dCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0IgorICAgICAgICAgICAgZW1p
dE1JUFNEb3VibGVCcmFuY2goIm9sdCIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAi
YmRsdGVxIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9sZSIsIGZhbHNlLCBv
cGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRlcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3Vi
bGVCcmFuY2goInVlcSIsIGZhbHNlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRuZXF1biIK
KyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIHRydWUsIG9wZXJhbmRzKQor
ICAgICAgICB3aGVuICJiZGd0dW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgi
b2xlIiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3RlcXVuIgorICAgICAgICAg
ICAgZW1pdE1JUFNEb3VibGVCcmFuY2goIm9sdCIsIHRydWUsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJiZGx0dW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWx0IiwgZmFs
c2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGx0ZXF1biIKKyAgICAgICAgICAgIGVtaXRN
SVBTRG91YmxlQnJhbmNoKCJ1bGUiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJ0
ZDJpIgorICAgICAgICAgICAgIyBGSVhNRTogbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGp1c3QgZ2V0
IHJpZCBvZiB0aGlzIGluc3RydWN0aW9uLCBzaW5jZSB0aGUgaW50ZXJwcmV0ZXIKKyAgICAgICAg
ICAgICMgY3VycmVudGx5IGRvZXMgbm90IHVzZSBpdC4KKyAgICAgICAgICAgIHJhaXNlICJNSVBT
IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59IgorICAgICAg
ICB3aGVuICJ0ZDJpIgorICAgICAgICAgICAgJGFzbS5wdXRzICJjdnQudy5kICN7TUlQU19TQ1JB
VENIX0ZQUi5taXBzU2luZ2xlTG99LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibWZjMSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tNSVBT
X1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30iCisgICAgICAgIHdoZW4gImJjZDJpIgorICAgICAg
ICAgICAgJGFzbS5wdXRzICJjdnQudy5kICN7TUlQU19TQ1JBVENIX0ZQUi5taXBzU2luZ2xlTG99
LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZj
MSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5n
bGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC5kLncgI3tNSVBTX1NDUkFUQ0hfRlBS
Lm1pcHNPcGVyYW5kfSwgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30iCisgICAgICAg
ICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgiZXEiLCB0cnVlLCBbTUlQU19TQ1JBVENIX0ZQUiwg
b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAkemVybywgI3tvcGVyYW5kc1syXS5hc21MYWJlbH0i
CisgICAgICAgIHdoZW4gIm1vdmR6IgorICAgICAgICAgICAgIyBGSVhNRTogZWl0aGVyIHN1cHBv
cnQgdGhpcyBvciByZW1vdmUgaXQuCisgICAgICAgICAgICByYWlzZSAiTUlQUyBkb2VzIG5vdCBz
dXBwb3J0IHRoaXMgb3Bjb2RlIHlldCwgI3tjb2RlT3JpZ2lufSIKKyAgICAgICAgd2hlbiAicG9w
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJsdyAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwg
MCgkc3ApIgorICAgICAgICAgICAgJGFzbS5wdXRzICJhZGRpdSAkc3AsICRzcCwgNCIKKyAgICAg
ICAgd2hlbiAicHVzaCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgJHNwLCAkc3AsIC00
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzdyAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwg
MCgkc3ApIgorICAgICAgICB3aGVuICJtb3ZlIiwgInN4aTJwIiwgInp4aTJwIgorICAgICAgICAg
ICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgbWlwc01v
dmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUsIG9wZXJhbmRzWzFdKQorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAje21pcHNGbGlwcGVkT3BlcmFu
ZHMob3BlcmFuZHMpfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJub3AiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIm5vcCIKKyAgICAgICAgd2hlbiAiYmllcSIsICJicGVxIiwgImJi
ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJlcSAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1sw
Li4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmluZXEiLCAi
YnBuZXEiLCAiYmJuZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJuZSAje21pcHNPcGVyYW5k
cyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hl
biAiYmlndCIsICJicGd0IiwgImJiZ3QiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJndCAje21p
cHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAg
ICAgICAgd2hlbiAiYmlndGVxIiwgImJwZ3RlcSIsICJiYmd0ZXEiCisgICAgICAgICAgICAkYXNt
LnB1dHMgImJnZSAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29wZXJhbmRzWzJd
LmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmlsdCIsICJicGx0IiwgImJibHQiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgImJsdCAje21pcHNPcGVyYW5kcyhvcGVyYW5kc1swLi4xXSl9LCAje29w
ZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYmlsdGVxIiwgImJwbHRlcSIsICJi
Ymx0ZXEiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJsZSAje21pcHNPcGVyYW5kcyhvcGVyYW5k
c1swLi4xXSl9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiam1wIgor
ICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0ubGFiZWw/CisgICAgICAgICAgICAgICAgJGFzbS5w
dXRzICJqICN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICRhc20ucHV0cyAianIgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY2FsbCIKKyAgICAgICAgICAgIGlmIG9wZXJhbmRz
WzBdLmxhYmVsPworICAgICAgICAgICAgICAgICRhc20ucHV0cyAiamFsICN7b3BlcmFuZHNbMF0u
YXNtTGFiZWx9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAi
amFsciAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAg
ICB3aGVuICJicmVhayIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYnJlYWsiCisgICAgICAgIHdo
ZW4gInJldCIKKyAgICAgICAgICAgICRhc20ucHV0cyAianIgJHJhIgorICAgICAgICB3aGVuICJj
aWEiLCAiY3BhIiwgImNiYSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRz
WzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJjaWFlcSIsICJjcGFlcSIsICJjYmFlcSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAx
IgorICAgICAgICB3aGVuICJjaWIiLCAiY3BiIiwgImNiYiIKKyAgICAgICAgICAgICRhc20ucHV0
cyAic2x0dSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3Bl
cmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJjaWJlcSIs
ICJjcGJlcSIsICJjYmJlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRz
WzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNb
Ml0ubWlwc09wZXJhbmR9LCAxIgorICAgICAgICB3aGVuICJjaWd0IiwgImNwZ3QiLCAiY2JndCIK
KyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisg
ICAgICAgIHdoZW4gImNpZ3RlcSIsICJjcGd0ZXEiLCAiY2JndGVxIgorICAgICAgICAgICAgJGFz
bS5wdXRzICJzbHQgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20u
cHV0cyAieG9yaSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAi
Y2lsdCIsICJjcGx0IiwgImNibHQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJh
bmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICB3aGVuICJjaWx0ZXEiLCAiY3BsdGVxIiwgImNi
bHRlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFu
ZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFu
ZH0sIDEiCisgICAgICAgIHdoZW4gInBlZWsiCisgICAgICAgICAgICAkYXNtLnB1dHMgImx3ICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLnZhbHVlICogNH0oJHNwKSIK
KyAgICAgICAgd2hlbiAicG9rZSIKKyAgICAgICAgICAgICRhc20ucHV0cyAic3cgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0udmFsdWUgKiA0fSgkc3ApIgorICAgICAg
ICB3aGVuICJmaWkyZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibXRjMSAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBzU2luZ2xlTG99IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJd
Lm1pcHNTaW5nbGVIaX0iCisgICAgICAgIHdoZW4gImZkMmlpIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNT
aW5nbGVMb30iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc1NpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAiYm8i
CisgICAgICAgICAgICAkYXNtLnB1dHMgImJndCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAg
ICAgICB3aGVuICJicyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmx0ICN7b3BlcmFuZHNbMF0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5h
c21MYWJlbH0iCisgICAgICAgIHdoZW4gImJ6IgorICAgICAgICAgICAgJGFzbS5wdXRzICJiZXEg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYm56IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJibmUgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0u
bWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAibGVh
aSIsICJsZWFwIgorICAgICAgICAgICAgb3BlcmFuZHNbMF0ubWlwc0VtaXRMZWEob3BlcmFuZHNb
MV0pCisgICAgICAgIHdoZW4gInNtdWxsaSIKKyAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1i
ZXIgb2YgYXJndW1lbnRzIHRvIHNtdWxsIGluICN7c2VsZi5pbnNwZWN0fSBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3Mgb3BlcmFuZHMubGVuZ3RoID09IDQKKyAgICAgICAgICAgICRhc20u
cHV0cyAibXVsdCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1mbG8gI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1maGkgI3tvcGVyYW5kc1szXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gIm1vdnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1v
dnogI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibW92biIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibW92biAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVy
YW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAg
ICB3aGVuICJzbHQiLCAic2x0YiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0ICN7b3BlcmFu
ZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1syXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNsdHUiLCAic2x0dWIiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgInNsdHUgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFu
ZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAg
d2hlbiAicGljaGRyIgorICAgICAgICAgICAgJGFzbS5wdXRTdHIoIk9GRkxJTkVfQVNNX0NQTE9B
RCgkMjUpIikKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZSAkczQsICRncCIKKyAgICAgICAg
d2hlbiAicGljaGRycmEiCisgICAgICAgICAgICAkYXNtLnB1dFN0cigiT0ZGTElORV9BU01fQ1BM
T0FEKCQzMSkiKQorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICRzNCwgJGdwIgorICAgICAg
ICBlbHNlCisgICAgICAgICAgICByYWlzZSAiVW5oYW5kbGVkIG9wY29kZSAje29wY29kZX0gYXQg
I3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgZW5kCitlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCmluZGV4IDQ0YjRkYmQuLjQ5MWEzY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2MucmIKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmlzYy5yYgpAQCAtNjMsMTAgKzYzLDYg
QEAgZGVmIHJpc2NMb3dlclNpbXBsZUJyYW5jaE9wcyhsaXN0KQogICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgb3AsIG5vZGUub3BlcmFuZHNbMC4uLTJdLCBhbm5vdGF0aW9uKQogICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgYnJhbmNoLCBbbm9k
ZS5vcGVyYW5kc1stMV1dKQotICAgICAgICAgICAgd2hlbiAnYm11bGlzJywgJ2JtdWx6JywgJ2Jt
dWxueicKLSAgICAgICAgICAgICAgICBjb25kaXRpb24gPSAkfi5wb3N0X21hdGNoCi0gICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibXVs
aSIsIG5vZGUub3BlcmFuZHNbMC4uLTJdLCBhbm5vdGF0aW9uKQotICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ0aSIgKyBjb25kaXRp
b24sIFtub2RlLm9wZXJhbmRzWy0yXSwgbm9kZS5vcGVyYW5kc1stMV1dKQogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgZW5kCkBA
IC05MywxMiArODksMjIgQEAgZGVmIHJpc2NMb3dlckhhcmRCcmFuY2hPcHMobGlzdCkKICAgICBu
ZXdMaXN0ID0gW10KICAgICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfAotICAgICAgICBp
ZiBub2RlLmlzX2E/IEluc3RydWN0aW9uIGFuZCBub2RlLm9wY29kZSA9PSAiYm11bGlvIgotICAg
ICAgICAgICAgdG1wMSA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQotICAgICAgICAg
ICAgdG1wMiA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQotICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic211bGxpIiwgW25vZGUu
b3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMV0sIHRtcDFdLCBu
b2RlLmFubm90YXRpb24pCi0gICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1lZGlhdGUu
bmV3KG5vZGUuY29kZU9yaWdpbiwgMzEpLCB0bXAyXSkKLSAgICAgICAgICAgIG5ld0xpc3QgPDwg
SW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpbmVxIiwgW3RtcDEsIHRtcDIsIG5v
ZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAg
ICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBu
b2RlLm9wY29kZQorICAgICAgICAgICAgd2hlbiAgImJtdWxpbyIKKyAgICAgICAgICAgICAgICB0
bXAxID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgdG1w
MiA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtub2RlLm9w
ZXJhbmRzWzBdLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAxXSwgbm9k
ZS5hbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgInJzaGlmdGkiLCBbbm9kZS5vcGVyYW5kc1stMl0sIEltbWVkaWF0
ZS5uZXcobm9kZS5jb2RlT3JpZ2luLCAzMSksIHRtcDJdKQorICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpbmVxIiwgW3RtcDEsIHRt
cDIsIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAgICAgIHdoZW4gL15ibXVsaS8KKyAgICAg
ICAgICAgICAgICBjb25kaXRpb24gPSAkfi5wb3N0X21hdGNoCisgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibXVsaSIsIG5vZGUub3Bl
cmFuZHNbMC4uLTJdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJ0aSIgKyBjb25kaXRpb24sIFtub2RlLm9w
ZXJhbmRzWy0yXSwgbm9kZS5vcGVyYW5kc1stMV1dKQorICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICBlbmQKQEAgLTQ0Nyw3ICs0NTMs
NyBAQCBkZWYgcmlzY0FzUmVnaXN0ZXJzKHByZUxpc3QsIHBvc3RMaXN0LCBvcGVyYW5kcywgc3Vm
Zml4KQogICAgIG5ld09wZXJhbmRzCiBlbmQKIAotZGVmIHJpc2NMb3dlck1pc3BsYWNlZEFkZHJl
c3NlcyhsaXN0KQorZGVmIHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3Nlc0NvbW1vbihsaXN0KQog
ICAgIG5ld0xpc3QgPSBbXQogICAgIGxpc3QuZWFjaCB7CiAgICAgICAgIHwgbm9kZSB8CkBAIC00
ODMsNiArNDg5LDI1IEBAIGRlZiByaXNjTG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNjQXNSZWdpc3RlcnMo
bmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9kZS5vcGVyYW5kcywgImQiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5vdGF0aW9uKQorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICBuZXdMaXN0ICs9IHBvc3RJbnN0cnVjdGlvbnMKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBuZXdM
aXN0CitlbmQKKworZGVmIHJpc2NMb3dlck1pc3BsYWNlZEFkZHJlc3Nlc1NwZWNpZmljKGxpc3Qp
CisgICAgbmV3TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAg
ICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgcG9zdEluc3RydWN0
aW9ucyA9IFtdCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCisgICAg
ICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCiAgICAgICAgICAgICB3aGVuICJqbXAiLCAiY2FsbCIK
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNv
ZGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCmluZGV4IGRhODE5YTcuLjczOWVmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDEt
MDQgIEJhbGF6cyBLaWx2YWR5ICA8a2lsdmFkeWJAaG9tZWppbm5pLmNvbT4KKworICAgICAgICBN
SVBTIExMSW50IGltcGxlbWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBMTEludCBpbXBsZW1lbnRhdGlvbiBmb3IgTUlQUy4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEzLTAxLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQ2FsbExpbmtTdGF0dXMgc2hvdWxkIGJlIGF3YXJlIG9mIGNs
b3N1cmUgY2FsbHMsIGFuZCB0aGUgREZHIGJ5dGVjb2RlIHBhcnNlciBzaG91bGQgdXNlIHRoYXQg
YXMgaXRzIHNvbGUgaW50ZXJuYWwgbm90aW9uIG9mIGhvdyB0byBvcHRpbWl6ZSBjYWxscwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKaW5kZXggZjJmZDNiMC4uZTMxZTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC05MjcsNyArOTI3
LDcgQEAKICAgICAmJiBFTkFCTEUoSklUKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgT1MoTElO
VVgpKSBcCiAgICAgJiYgKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFFUKSkgXAotICAgICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNX1RIVU1CMikpCisgICAgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpCiAjZGVmaW5lIEVOQUJMRV9MTElOVCAxCiAj
ZW5kaWYKIAo=
</data>
<flag name="review"
          id="198878"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181531</attachid>
            <date>2013-01-07 10:50:14 -0800</date>
            <delta_ts>2013-01-07 11:41:32 -0800</delta_ts>
            <desc>LLInt implementation for MIPS reusing risc.rb.</desc>
            <filename>mips-llint.diff</filename>
            <type>text/plain</type>
            <size>51783</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdkYmJjNTkuLjZhNTAyNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAxLTA3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUyBMTEludCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgTExJ
bnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6anVtcCk6
CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAg
ICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklU
U3R1YnMuaDoKKyAgICAgICAgKEpJVFN0YWNrRnJhbWUpOgorICAgICAgICAqIGxsaW50L0xMSW50
T2ZmbGluZUFzbUNvbmZpZy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAg
ICAgICogb2ZmbGluZWFzbS9iYWNrZW5kcy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL21pcHMucmI6IEFkZGVkLgorCiAyMDEz
LTAxLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxp
Znkgc2xvdyBjYXNlIHByb2ZpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2FiMjU1My4uMWIxYTEyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1J
UFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oCkBAIC0xMzIyLDcgKzEzMjIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGp1bXAoUmVn
aXN0ZXJJRCB0YXJnZXQpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5qcih0YXJnZXQpOwor
ICAgICAgICBtb3ZlKHRhcmdldCwgTUlQU1JlZ2lzdGVyczo6dDkpOworICAgICAgICBtX2Fzc2Vt
Ymxlci5qcihNSVBTUmVnaXN0ZXJzOjp0OSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5k
ZXggODczNjliNy4uMGJlYTdiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCkBAIC00Nyw2ICs0NywxOCBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAorI2lm
IENQVShNSVBTKQorI2lmIFdURl9NSVBTX1BJQworI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5
KGZ1bmN0aW9uKSBcCisgICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCisgICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCisgICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAorICAgICAg
ICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgorI2Vsc2UKKyNkZWZp
bmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgorI2VuZGlmCisjZW5kaWYK
KwogI2lmIEVOQUJMRShERkdfSklUKQogCiAjaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoWDg2XzY0
KQpAQCAtMjAxLDYgKzIxMyw1MiBAQAogICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5j
dGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKICAgICApOwogCisjZWxpZiBDT01QSUxF
UihHQ0MpICYmIENQVShNSVBTKQorCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRV
Uk5fQUREUkVTU19FKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwK
KyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9T
WU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAi
XG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVz
cykgXAorICAgICAgICAibW92ZSAkYTEsICRyYSIgIlxuIiBcCisgICAgICAgICJiICIgTE9DQUxf
UkVGRVJFTkNFKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAorICAgICk7CisK
KyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VDSShmdW5jdGlv
bikgXAorICAgIGFzbSggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJP
TF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4i
IFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgTE9BRF9GVU5D
VElPTl9UT19UOShmdW5jdGlvbiMjV2l0aFJldHVybkFkZHJlc3MpIFwKKyAgICAgICAgIm1vdmUg
JGEzLCAkcmEiICJcbiIgXAorICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikg
IldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dS
QVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkkoZnVuY3Rpb24pIFwKKyAgICBhc20oIFwKKyAg
ICAiLnRleHQiICJcbiIgXAorICAgICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAi
XG4iIFwKKyAgICBISURFX1NZTUJPTChmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklO
RyhmdW5jdGlvbikgIjoiICJcbiIgXAorICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZnVuY3Rpb24j
I1dpdGhSZXR1cm5BZGRyZXNzKSBcCisgICAgICAgICJzdyAkcmEsIDIwKCRzcCkiICJcbiIgXAor
ICAgICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNz
IiAiXG4iIFwKKyAgICApOworCisjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5f
QUREUkVTU19FSkNJKGZ1bmN0aW9uKSBcCisgICAgYXNtKCBcCisgICAgIi50ZXh0IiAiXG4iIFwK
KyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9T
WU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAi
XG4iIFwKKyAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGZ1bmN0aW9uIyNXaXRoUmV0dXJuQWRkcmVz
cykgXAorICAgICAgICAic3cgJHJhLCAyNCgkc3ApIiAiXG4iIFwKKyAgICAgICAgImIgIiBMT0NB
TF9SRUZFUkVOQ0UoZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsK
KwogI2VuZGlmCiAKICNkZWZpbmUgUF9GVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJF
U1NfRShmdW5jdGlvbikgXApAQCAtMTYzOCw2ICsxNjk2LDE3IEBAIFNZTUJPTF9TVFJJTkcoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKICAgICAibW92IHIwLCByNSIgIlxuIgogICAg
ICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRl
KSAiXG4iCiApOworI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoTUlQUykKK2FzbSgKKyIudGV4
dCIgIlxuIgorIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkg
IlxuIgorSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgorU1lNQk9MX1NU
UklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgorICAgIExPQURfRlVOQ1RJT05f
VE9fVDkoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCisgICAgImx3ICRzMCwg
LTQwKCRzMCkiICJcbiIKKyAgICAibW92ZSAkYTAsICRzMCIgIlxuIgorICAgICJiICIgTE9DQUxf
UkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCispOwog
I2VuZGlmCiAKIGV4dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxV
RV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoRXhlY1N0YXRlKiBl
eGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBlNDhjNWUzLi42
ZTE1MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMjgwLDEx
ICsyODAsMTMgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIFBSRVNFUlZFRF9TMF9PRkZTRVQgICAg
ICAgICA2NAogI2RlZmluZSBQUkVTRVJWRURfUzFfT0ZGU0VUICAgICAgICAgNjgKICNkZWZpbmUg
UFJFU0VSVkVEX1MyX09GRlNFVCAgICAgICAgIDcyCi0jZGVmaW5lIFBSRVNFUlZFRF9SRVRVUk5f
QUREUkVTU19PRkZTRVQgNzYKLSNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1NfT0ZGU0VUIDgw
Ci0jZGVmaW5lIFJFR0lTVEVSX0ZJTEVfT0ZGU0VUICAgICAgICA4NAotI2RlZmluZSBHTE9CQUxf
REFUQV9PRkZTRVQgICAgICAgICAxMDAKLSNkZWZpbmUgU1RBQ0tfTEVOR1RIICAgICAgICAgICAg
ICAgMTA0CisjZGVmaW5lIFBSRVNFUlZFRF9TM19PRkZTRVQgICAgICAgICA3NgorI2RlZmluZSBQ
UkVTRVJWRURfUzRfT0ZGU0VUICAgICAgICAgODAKKyNkZWZpbmUgUFJFU0VSVkVEX1JFVFVSTl9B
RERSRVNTX09GRlNFVCA4NAorI2RlZmluZSBUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQgODgK
KyNkZWZpbmUgUkVHSVNURVJfRklMRV9PRkZTRVQgICAgICAgIDkyCisjZGVmaW5lIEdMT0JBTF9E
QVRBX09GRlNFVCAgICAgICAgIDEwOAorI2RlZmluZSBTVEFDS19MRU5HVEggICAgICAgICAgICAg
ICAxMTIKICNlbGlmIENQVShTSDQpCiAjZGVmaW5lIFNZTUJPTF9TVFJJTkcobmFtZSkgI25hbWUK
IC8qIGNvZGUgKHI0KSwgSlNTdGFjayogKHI1KSwgQ2FsbEZyYW1lKiAocjYpLCB2b2lkKiB1bnVz
ZWQxIChyNyksIHZvaWQqIHVudXNlZDIoc3ApLCBKU0dsb2JhbERhdGEgKHNwKSovCkBAIC00NTEs
NiArNDUzLDggQEAgYXNtICgKIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZSkgIjoiICJcbiIK
ICAgICAiYWRkaXUgJDI5LCQyOSwtIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBQ0tfTEVOR1RIKSAi
XG4iCiAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJO
X0FERFJFU1NfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAic3cgICAgJDIwLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgorICAgICJzdyAgICAk
MTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MzX09GRlNFVCkgIigkMjkpIiAiXG4i
CiAgICAgInN3ICAgICQxOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzJfT0ZGU0VU
KSAiKCQyOSkiICJcbiIKICAgICAic3cgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNF
UlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJzdyAgICAkMTYsIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCkBAIC00NjcsMTIgKzQ3
MSwxNyBAQCBTWU1CT0xfU1RSSU5HKGN0aVRyYW1wb2xpbmUpICI6IiAiXG4iCiAgICAgImx3ICAg
ICQxNiwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJc
biIKICAgICAibHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZT
RVQpICIoJDI5KSIgIlxuIgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJF
U0VSVkVEX1MyX09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAg
JDIwLCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxu
IgogICAgICJsdyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9B
RERSRVNTX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJh
ZGRpdSAkMjksJDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgogIi5z
ZXQgcmVvcmRlciIgIlxuIgogIi5zZXQgbWFjcm8iICJcbiIKICIuZW5kICIgU1lNQk9MX1NUUklO
RyhjdGlUcmFtcG9saW5lKSAiXG4iCisiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9s
aW5lRW5kKSAiXG4iCitISURFX1NZTUJPTChjdGlUcmFtcG9saW5lRW5kKSAiXG4iCitTWU1CT0xf
U1RSSU5HKGN0aVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCiApOwogCiBhc20gKApAQCAtNDg1LDgg
KzQ5NCw4IEBAIGFzbSAoCiAiLmVudCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xp
bmUpICJcbiIKIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAj
aWYgV1RGX01JUFNfUElDCi0gICAgImx3ICAgICQyOCwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfR1BfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICIuc2V0IG1hY3JvIiAiXG4iCisiLmNwbG9h
ZCAkMzEiICJcbiIKICAgICAibGEgICAgJDI1LCIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cp
ICJcbiIKICIuc2V0IG5vbWFjcm8iICJcbiIKICAgICAiYmFsICIgU1lNQk9MX1NUUklORyhjdGlf
dm1fdGhyb3cpICJcbiIKQEAgLTQ5OCw2ICs1MDcsOCBAQCBTWU1CT0xfU1RSSU5HKGN0aVZNVGhy
b3dUcmFtcG9saW5lKSAiOiIgIlxuIgogICAgICJsdyAgICAkMTYsIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJFU0VSVkVEX1MwX09GRlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImx3ICAgICQxNywiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzFfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAi
bHcgICAgJDE4LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMl9PRkZTRVQpICIoJDI5
KSIgIlxuIgorICAgICJsdyAgICAkMTksIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1Mz
X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQyMCwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzRfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAibHcgICAgJDMxLCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIg
IlxuIgogICAgICJqciAgICAkMzEiICJcbiIKICAgICAiYWRkaXUgJDI5LCQyOSwiIFNUUklOR0la
RV9WQUxVRV9PRihTVEFDS19MRU5HVEgpICJcbiIKQEAgLTUxOCw2ICs1MjksOCBAQCBTWU1CT0xf
U1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiXG4iCiAgICAgImx3ICAgICQxNiwiIFNU
UklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKICAgICAi
bHcgICAgJDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5
KSIgIlxuIgogICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1My
X09GRlNFVCkgIigkMjkpIiAiXG4iCisgICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKKyAgICAibHcgICAgJDIwLCIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgogICAgICJs
dyAgICAkMzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09G
RlNFVCkgIigkMjkpIiAiXG4iCiAgICAgImpyICAgICQzMSIgIlxuIgogICAgICJhZGRpdSAkMjks
JDI5LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgpAQCAtMTA2Nyw5ICsx
MDgwLDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFQgdGhyb3dFeGNlcHRpb25Gcm9t
T3BDYWxsKEpJVFN0YWNrRnJhbWUmIGppdFN0YWNrRnIKICAgICAgICAgIi5nbG9ibCAiIFNZTUJP
TF9TVFJJTkcoY3RpXyMjb3ApICJcbiIgXAogICAgICAgICAiLmVudCAiIFNZTUJPTF9TVFJJTkco
Y3RpXyMjb3ApICJcbiIgXAogICAgICAgICBTWU1CT0xfU1RSSU5HKGN0aV8jI29wKSAiOiIgIlxu
IiBcCi0gICAgICAgICJsdyAgICAkMjgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX0dQ
X09GRlNFVCkgIigkMjkpIiAiXG4iIFwKLSAgICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9W
QUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVTU19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAg
ICAgICIuc2V0IG1hY3JvIiAiXG4iIFwKKyAgICAgICAgIi5jcGxvYWQgJDI1IiAiXG4iIFwKKyAg
ICAgICAgInN3ICAgICQzMSwiIFNUUklOR0laRV9WQUxVRV9PRihUSFVOS19SRVRVUk5fQUREUkVT
U19PRkZTRVQpICIoJDI5KSIgIlxuIiBcCiAgICAgICAgICJsYSAgICAkMjUsIiBTWU1CT0xfU1RS
SU5HKEpJVFN0dWJUaHVua2VkXyMjb3ApICJcbiIgXAogICAgICAgICAiLnNldCBub21hY3JvIiAi
XG4iIFwKICAgICAgICAgIi5yZWxvYyAxZixSX01JUFNfSkFMUiwiIFNZTUJPTF9TVFJJTkcoSklU
U3R1YlRodW5rZWRfIyNvcCkgIlxuIiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgK
aW5kZXggNDNkYzAxYy4uY2EwZjI1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVicy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMu
aApAQCAtMjE4LDYgKzIxOCw4IEBAIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKICAgICB2b2lkKiBw
cmVzZXJ2ZWRTMDsKICAgICB2b2lkKiBwcmVzZXJ2ZWRTMTsKICAgICB2b2lkKiBwcmVzZXJ2ZWRT
MjsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRTMzsKKyAgICB2b2lkKiBwcmVzZXJ2ZWRTNDsKICAgICB2
b2lkKiBwcmVzZXJ2ZWRSZXR1cm5BZGRyZXNzOwogCiAgICAgUmV0dXJuQWRkcmVzc1B0ciB0aHVu
a1JldHVybkFkZHJlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRPZmZsaW5lQXNtQ29uZmlnLmgKaW5kZXggZGEyZDUxMC4uMTU3NTIxMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaApAQCAt
MzgsNiArMzgsNyBAQAogI2RlZmluZSBPRkZMSU5FX0FTTV9BUk12NyAwCiAjZGVmaW5lIE9GRkxJ
TkVfQVNNX1g4Nl82NCAwCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0FSTXY3cyAwCisjZGVmaW5lIE9G
RkxJTkVfQVNNX01JUFMgMAogCiAjZWxzZSAvLyAhRU5BQkxFKExMSU5UX0NfTE9PUCkKIApAQCAt
NjcsNiArNjgsMTIgQEAKICNkZWZpbmUgT0ZGTElORV9BU01fWDg2XzY0IDAKICNlbmRpZgogCisj
aWYgQ1BVKE1JUFMpCisjZGVmaW5lIE9GRkxJTkVfQVNNX01JUFMgMQorI2Vsc2UKKyNkZWZpbmUg
T0ZGTElORV9BU01fTUlQUyAwCisjZW5kaWYKKwogI2VuZGlmIC8vICFFTkFCTEUoTExJTlRfQ19M
T09QKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExMSw0ICsxMTgsMTcgQEAKICNkZWZpbmUg
T0ZGTElORV9BU01fVkFMVUVfUFJPRklMRVIgMAogI2VuZGlmCiAKKyNpZiBDUFUoTUlQUykKKyNp
ZmRlZiBXVEZfTUlQU19QSUMKKyNkZWZpbmUgUyh4KSAjeAorI2RlZmluZSBTWCh4KSBTKHgpCisj
ZGVmaW5lIE9GRkxJTkVfQVNNX0NQTE9BRChyZWcpIFwKKyAgICAiLnNldCBub3Jlb3JkZXJcbiIg
XAorICAgICIuY3Bsb2FkICIgU1gocmVnKSAiXG4iIFwKKyAgICAiLnNldCByZW9yZGVyXG4iCisj
ZWxzZQorI2RlZmluZSBPRkZMSU5FX0FTTV9DUExPQUQocmVnKQorI2VuZGlmCisjZW5kaWYKKwog
I2VuZGlmIC8vIExMSW50T2ZmbGluZUFzbUNvbmZpZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggMDBkNWM0Zi4uOWRl
NDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQpAQCAtMTgyLDEwICsxODIsOCBAQCBtYWNybyBhc3NlcnQoYXNzZXJ0aW9u
KQogZW5kCiAKIG1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlv
blJlZ2lzdGVyKQotICAgIGlmIENfTE9PUAotICAgICAgICAjIEluIG91ciBjYXNlLCB3ZSdyZSBv
bmx5IHByZXNlcnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4gCi0gICAgICAgIG1vdmUgbHIsIGRlc3Rp
bmF0aW9uUmVnaXN0ZXIKLSAgICBlbHNpZiBBUk12NworICAgIGlmIENfTE9PUCBvciBBUk12NyBv
ciBNSVBTCisgICAgICAgICMgSW4gQ19MT09QIGNhc2UsIHdlJ3JlIG9ubHkgcHJlc2VydmluZyB0
aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCiAg
ICAgZWxzaWYgWDg2IG9yIFg4Nl82NAogICAgICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgpA
QCAtMTk1LDEwICsxOTMsOCBAQCBtYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
ZGVzdGluYXRpb25SZWdpc3RlcikKIGVuZAogCiBtYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBDX0xPT1AKLSAgICAgICAgIyBJbiBv
dXIgY2FzZSwgd2UncmUgb25seSByZXN0b3JpbmcgdGhlIGJ5dGVjb2RlIHZQQy4gCi0gICAgICAg
IG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgQVJNdjcKKyAgICBpZiBDX0xPT1Ag
b3IgQVJNdjcgb3IgTUlQUworICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHJl
c3RvcmluZyB0aGUgYnl0ZWNvZGUgdlBDLgogICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBs
cgogICAgIGVsc2lmIFg4NiBvciBYODZfNjQKICAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3Rlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQppbmRleCBkNzI3NDc4Li45ODA5N2JiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpA
QCAtMTEzLDYgKzExMywxMCBAQCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCiAg
ICAgICAgIHBva2UgYXJnMSwgMAogICAgICAgICBwb2tlIGFyZzIsIDEKICAgICAgICAgY2FsbCBm
dW5jdGlvbgorICAgIGVsc2lmIE1JUFMKKyAgICAgICAgbW92ZSBhcmcxLCBhMAorICAgICAgICBt
b3ZlIGFyZzIsIGExCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAg
ICAgICAgY2xvb3BDYWxsU2xvd1BhdGggZnVuY3Rpb24sIGFyZzEsIGFyZzIKICAgICBlbHNlCkBA
IC0xMzQsNiArMTM4LDEyIEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJn
MywgYXJnNCkKICAgICAgICAgcG9rZSBhcmczLCAyCiAgICAgICAgIHBva2UgYXJnNCwgMwogICAg
ICAgICBjYWxsIGZ1bmN0aW9uCisgICAgZWxzaWYgTUlQUworICAgICAgICBtb3ZlIGFyZzEsIGEw
CisgICAgICAgIG1vdmUgYXJnMiwgYTEKKyAgICAgICAgbW92ZSBhcmczLCBhMgorICAgICAgICBt
b3ZlIGFyZzQsIGEzCisgICAgICAgIGNhbGwgZnVuY3Rpb24KICAgICBlbHNpZiBDX0xPT1AKICAg
ICAgICAgZXJyb3IKICAgICBlbHNlCkBAIC0xODI4LDYgKzE4MzgsMjAgQEAgbWFjcm8gbmF0aXZl
Q2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGNhbGwg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCiAgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHQzKQogICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxE
YXRhW3NwXSwgdDMKKyAgICBlbHNpZiBNSVBTCisgICAgICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6
Omdsb2JhbERhdGFbc3BdLCB0MworICAgICAgICBzdG9yZXAgY2ZyLCBKU0dsb2JhbERhdGE6OnRv
cENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92ZSB0MCwgdDIKKyAgICAgICAgcHJlc2VydmVSZXR1
cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQorICAgICAgICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0K
KyAgICAgICAgbW92ZSBjZnIsIHQwCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZz
ZXRbY2ZyXSwgdDEKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwg
dDEKKyAgICAgICAgbW92ZSB0MiwgY2ZyCisgICAgICAgIG1vdmUgdDAsIGEwCisgICAgICAgIGNh
bGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCisgICAgICAgIHJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKHQzKQorICAgICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9i
YWxEYXRhW3NwXSwgdDMKICAgICBlbHNpZiBDX0xPT1AKICAgICAgICAgbG9hZHAgSklUU3RhY2tG
cmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCiAgICAgICAgIHN0b3JlcCBjZnIsIEpTR2xvYmFsRGF0
YTo6dG9wQ2FsbEZyYW1lW3QzXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYmFja2VuZHMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9i
YWNrZW5kcy5yYgppbmRleCA3OGU1NDU3Li5lZjkzNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgpAQCAtMjUsNiArMjUsNyBAQCByZXF1aXJlICJj
b25maWciCiByZXF1aXJlICJhcm12NyIKIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIng4NiIKK3Jl
cXVpcmUgIm1pcHMiCiByZXF1aXJlICJjbG9vcCIKIAogQkFDS0VORFMgPQpAQCAtMzIsNiArMzMs
NyBAQCBCQUNLRU5EUyA9CiAgICAgICJYODYiLAogICAgICAiWDg2XzY0IiwKICAgICAgIkFSTXY3
IiwKKyAgICAgIk1JUFMiLAogICAgICAiQ19MT09QIgogICAgIF0KIApAQCAtNDUsNiArNDcsNyBA
QCBXT1JLSU5HX0JBQ0tFTkRTID0KICAgICAgIlg4NiIsCiAgICAgICJYODZfNjQiLAogICAgICAi
QVJNdjciLAorICAgICAiTUlQUyIsCiAgICAgICJDX0xPT1AiCiAgICAgXQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKaW5kZXggZTA0N2Iy
YS4uNGU3MDYyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
aW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYgpAQCAtMjY1LDYgKzI2NSwxNiBAQCBBUk12N19JTlNUUlVDVElPTlMgPQog
ICAgICAib3JpcyIKICAgICBdCiAKK01JUFNfSU5TVFJVQ1RJT05TID0KKyAgICBbCisgICAgIm1v
dnoiLAorICAgICJtb3ZuIiwKKyAgICAic2x0IiwKKyAgICAic2x0dSIsCisgICAgInBpY2hkciIs
CisgICAgInBpY2hkcnJhIgorICAgIF0KKwogQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgWwogICAg
ICAiY2xvb3BDcmFzaCIsICAgICAgICAgICAjIG5vIG9wZXJhbmRzCkBAIC0yODEsNyArMjkxLDcg
QEAgQ1hYX0lOU1RSVUNUSU9OUyA9CiAgICAgICJjbG9vcERvIiwgICAgICAgICAgICAgICMgbm8g
b3BlcmFuZHMKICAgICBdCiAKLUlOU1RSVUNUSU9OUyA9IE1BQ1JPX0lOU1RSVUNUSU9OUyArIFg4
Nl9JTlNUUlVDVElPTlMgKyBBUk12N19JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCitJ
TlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsgQVJN
djdfSU5TVFJVQ1RJT05TICsgTUlQU19JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05TCiAK
IElOU1RSVUNUSU9OX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoKCcgKyBJTlNUUlVDVElPTlMu
am9pbignKXwoJykgKyAnKSlcXFonKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9taXBzLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
bWlwcy5yYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGFhNGZlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vbWlwcy5yYgpA
QCAtMCwwICsxLDg2NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgTUlQUyBUZWNobm9sb2dpZXMsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBNSVBTIFRFQ0hOT0xPR0lFUywgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
IyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IE1JUFMgVEVDSE5PTE9HSUVTLCBJTkMuIE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworcmVxdWlyZSAncmlzYycKKworY2xhc3MgQXNzZW1ibGVyCisgICAgZGVmIHB1
dFN0cihzdHIpCisgICAgICAgIEBvdXRwLnB1dHMgc3RyCisgICAgZW5kCitlbmQKKworY2xhc3Mg
Tm9kZQorICAgIGRlZiBtaXBzU2luZ2xlSGkKKyAgICAgICAgZG91YmxlT3BlcmFuZCA9IG1pcHNP
cGVyYW5kCisgICAgICAgIHJhaXNlICJCb2d1cyByZWdpc3RlciBuYW1lICN7ZG91YmxlT3BlcmFu
ZH0iIHVubGVzcyBkb3VibGVPcGVyYW5kID1+IC9eXCRmLworICAgICAgICAiJGYiICsgKCR+LnBv
c3RfbWF0Y2gudG9faSArIDEpLnRvX3MKKyAgICBlbmQKKyAgICBkZWYgbWlwc1NpbmdsZUxvCisg
ICAgICAgIGRvdWJsZU9wZXJhbmQgPSBtaXBzT3BlcmFuZAorICAgICAgICByYWlzZSAiQm9ndXMg
cmVnaXN0ZXIgbmFtZSAje2RvdWJsZU9wZXJhbmR9IiB1bmxlc3MgZG91YmxlT3BlcmFuZCA9fiAv
XlwkZi8KKyAgICAgICAgZG91YmxlT3BlcmFuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIFNwZWNp
YWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgbWlwc09wZXJhbmQKKyAgICAgICAgQG5h
bWUKKyAgICBlbmQKKworICAgIGRlZiBkdW1wCisgICAgICAgIEBuYW1lCisgICAgZW5kCisKKyAg
ICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2VuZAorCitNSVBTX1RFTVBf
R1BSUyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3KCIkdDUiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygi
JHQ2IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoIiR0NyIpLAorICAgICAgICAgICAgICAgICAgICBT
cGVjaWFsUmVnaXN0ZXIubmV3KCIkdDgiKV0KK01JUFNfWkVST19SRUcgPSBTcGVjaWFsUmVnaXN0
ZXIubmV3KCIkemVybyIpCitNSVBTX0dQX1JFRyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRncCIp
CitNSVBTX0dQU0FWRV9SRUcgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkczQiKQorTUlQU19KVU1Q
X1JFRyA9IFNwZWNpYWxSZWdpc3Rlci5uZXcoIiRyYSIpCitNSVBTX0NBTExfUkVHID0gU3BlY2lh
bFJlZ2lzdGVyLm5ldygiJHQ5IikKK01JUFNfVEVNUF9GUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5u
ZXcoIiRmMTYiKV0KK01JUFNfU0NSQVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCIkZjE4
IikKKworZGVmIG1pcHNNb3ZlSW1tZWRpYXRlKHZhbHVlLCByZWdpc3RlcikKKyAgICBpZiB2YWx1
ZSA9PSAwCisgICAgICAgICRhc20ucHV0cyAiYWRkICN7cmVnaXN0ZXIubWlwc09wZXJhbmR9LCAk
emVybywgJHplcm8iCisgICAgZWxzZQorICAgICAgICAkYXNtLnB1dHMgImxpICN7cmVnaXN0ZXIu
bWlwc09wZXJhbmR9LCAje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBSZWdpc3RlcklE
CisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAgIGNhc2UgbmFtZQorICAgICAgICB3aGVuICJh
MCIKKyAgICAgICAgICAgICIkYTAiCisgICAgICAgIHdoZW4gImExIgorICAgICAgICAgICAgIiRh
MSIKKyAgICAgICAgd2hlbiAicjAiLCAidDAiCisgICAgICAgICAgICAiJHYwIgorICAgICAgICB3
aGVuICJyMSIsICJ0MSIKKyAgICAgICAgICAgICIkdjEiCisgICAgICAgIHdoZW4gInQyIgorICAg
ICAgICAgICAgIiR0MiIKKyAgICAgICAgd2hlbiAidDMiCisgICAgICAgICAgICAiJHMzIgorICAg
ICAgICB3aGVuICJ0NCIgICAjIFBDIHJlZyBpbiBsbGludAorICAgICAgICAgICAgIiRzMiIKKyAg
ICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICAiJHQ1IgorICAgICAgICB3aGVuICJ0NiIKKyAg
ICAgICAgICAgICIkdDYiCisgICAgICAgIHdoZW4gInQ3IgorICAgICAgICAgICAgIiR0NyIKKyAg
ICAgICAgd2hlbiAidDgiCisgICAgICAgICAgICAiJHQ4IgorICAgICAgICB3aGVuICJjZnIiCisg
ICAgICAgICAgICAiJHMwIgorICAgICAgICB3aGVuICJsciIKKyAgICAgICAgICAgICIkcmEiCisg
ICAgICAgIHdoZW4gInNwIgorICAgICAgICAgICAgIiRzcCIKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVnaXN0ZXJJ
RAorICAgIGRlZiBtaXBzT3BlcmFuZAorICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgd2hlbiAi
ZnQwIiwgImZyIgorICAgICAgICAgICAgIiRmMCIKKyAgICAgICAgd2hlbiAiZnQxIgorICAgICAg
ICAgICAgIiRmMiIKKyAgICAgICAgd2hlbiAiZnQyIgorICAgICAgICAgICAgIiRmNCIKKyAgICAg
ICAgd2hlbiAiZnQzIgorICAgICAgICAgICAgIiRmNiIKKyAgICAgICAgd2hlbiAiZnQ0IgorICAg
ICAgICAgICAgIiRmOCIKKyAgICAgICAgd2hlbiAiZnQ1IgorICAgICAgICAgICAgIiRmMTAiCisg
ICAgICAgIHdoZW4gImZhMCIKKyAgICAgICAgICAgICIkZjEyIgorICAgICAgICB3aGVuICJmYTEi
CisgICAgICAgICAgICAiJGYxNCIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UgIkJh
ZCByZWdpc3RlciAje25hbWV9IGZvciBNSVBTIGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAg
ICAgIGVuZAorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiBtaXBzT3Bl
cmFuZAorICAgICAgICByYWlzZSAiSW52YWxpZCBpbW1lZGlhdGUgI3t2YWx1ZX0gYXQgI3tjb2Rl
T3JpZ2luU3RyaW5nfSIgaWYgdmFsdWUgPCAtMHg3ZmZmIG9yIHZhbHVlID4gMHg3ZmZmCisgICAg
ICAgICIje3ZhbHVlfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIG1p
cHNPcGVyYW5kCisgICAgICAgIHJhaXNlICJCYWQgb2Zmc2V0IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIGlmIG9mZnNldC52YWx1ZSA8IC0weDdmZmYgb3Igb2Zmc2V0LnZhbHVlID4gMHg3ZmZmCisg
ICAgICAgICIje29mZnNldC52YWx1ZX0oI3tiYXNlLm1pcHNPcGVyYW5kfSkiCisgICAgZW5kCitl
bmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIG1pcHNPcGVyYW5kCisgICAgICAg
IHJhaXNlICJVbmNvbnZlcnRlZCBhYnNvbHV0ZSBhZGRyZXNzIGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iCisgICAgZW5kCitlbmQKKworIworIyBMb3dlciAnYW5kJyBtYXNrZWQgYnJhbmNoZXMKKyMK
KworZGVmIGxvd2VyTUlQU0NvbmRCcmFuY2gobGlzdCwgY29uZE9wLCBub2RlKQorICAgIGlmIG5v
ZGUub3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZE9wLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9kZS5vcGVyYW5kc1swXSwgTUlQU19a
RVJPX1JFRywgbm9kZS5vcGVyYW5kc1stMV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub2RlLmFubm90YXRpb24pCisgICAgZWxzaWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDMK
KyAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgIGxp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImFuZGkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
bm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS5hbm5vdGF0aW9uKQorICAgICAgICBsaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmRPcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RtcCwgTUlQU19a
RVJPX1JFRywgbm9kZS5vcGVyYW5kc1stMV1dKQorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgIkV4
cGVjdGVkIDIgb3IgMyBvcGVyYW5kcyBidXQgZ290ICN7bm9kZS5vcGVyYW5kcy5zaXplfSBhdCAj
e25vZGUuY29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCitlbmQKKworIworIyBMb3dlcmluZyBv
ZiBicmFuY2ggb3BzLiBGb3IgZXhhbXBsZToKKyMKKyMgYmFkZGl6IGZvbywgYmFyLCBiYXoKKyMK
KyMgd2lsbCBiZWNvbWU6CisjCisjIGFkZGkgZm9vLCBiYXIKKyMgYnogYmF6CisjCisKK2RlZiBt
aXBzTG93ZXJTaW1wbGVCcmFuY2hPcHMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0
LmVhY2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0
aW9uCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gbm9kZS5hbm5vdGF0aW9uCisgICAgICAgICAg
ICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuIC9eYihhZGRpfHN1Yml8b3JpfGFk
ZHApLworICAgICAgICAgICAgICAgIG9wID0gJDEKKyAgICAgICAgICAgICAgICBiYyA9ICR+LnBv
c3RfbWF0Y2gKKyAgICAgICAgICAgICAgICBicmFuY2ggPSAiYiIgKyBiYworCisgICAgICAgICAg
ICAgICAgY2FzZSBvcAorICAgICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIKKyAgICAg
ICAgICAgICAgICAgICAgb3AgPSAiYWRkaSIKKyAgICAgICAgICAgICAgICB3aGVuICJzdWJpIgor
ICAgICAgICAgICAgICAgICAgICBvcCA9ICJzdWJpIgorICAgICAgICAgICAgICAgIHdoZW4gIm9y
aSIKKyAgICAgICAgICAgICAgICAgICAgb3AgPSAib3JpIgorICAgICAgICAgICAgICAgIGVuZAor
CisgICAgICAgICAgICAgICAgaWYgYmMgPT0gIm8iCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
b3AKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiYWRkaSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICMgIGFkZHUgJHMwLCAkczEsICRzMgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9y
ICR0MCwgJHMxLCAkczIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJv
LCBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgICAgICAgIyAgeG9yICR0MCwgJHMwLCAk
czEKKyAgICAgICAgICAgICAgICAgICAgICAgICMgIGJsdCAkdDAsICR6ZXJvLCBvdmVyZmxvdwor
ICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBvdmVyZmxvdzoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVP
cmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KG5vZGUu
Y29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vRmxvdyA9IExvY2Fs
TGFiZWwudW5pcXVlKCJub2Zsb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9GbG93UmVm
ID0gTG9jYWxMYWJlbFJlZmVyZW5jZS5uZXcobm9kZS5jb2RlT3JpZ2luLCBub0Zsb3cpCisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXSwgdHJdLCBhbm5v
dGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCAieG9yaSIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJh
bmRzWzFdLCB0bXBdKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIE1JUFNfWkVST19SRUcsIG5v
Rmxvd1JlZl0pCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3JpIiwgW3RyLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBd
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAiYmlsdCIsIFt0bXAsIE1JUFNfWkVST19SRUcsIG5vZGUub3BlcmFuZHNb
Ml1dKQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub0Zsb3cKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdp
biwgIm1vdmUiLCBbdHIsIG5vZGUub3BlcmFuZHNbMV1dKQorICAgICAgICAgICAgICAgICAgICB3
aGVuICJzdWJpIgorICAgICAgICAgICAgICAgICAgICAgICAgIyAgc3VidSAkczAsICRzMSwgJHMy
CisgICAgICAgICAgICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczEsICRzMgorICAgICAgICAg
ICAgICAgICAgICAgICAgIyAgYmdlICR0MCwgJHplcm8sIG5vIG92ZXJmbG93CisgICAgICAgICAg
ICAgICAgICAgICAgICAjICB4b3IgJHQwLCAkczAsICRzMQorICAgICAgICAgICAgICAgICAgICAg
ICAgIyAgYmx0ICR0MCwgJHplcm8sIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICAgICAgICAj
IG5vIG92ZXJmbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAg
ICAgICAgICAgdHIgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAg
ICAgICAgICAgICAgICAgICAgbm9GbG93ID0gTG9jYWxMYWJlbC51bmlxdWUoIm5vZmxvdyIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBub0Zsb3dSZWYgPSBMb2NhbExhYmVsUmVmZXJlbmNlLm5l
dyhub2RlLmNvZGVPcmlnaW4sIG5vRmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIFtub2RlLm9wZXJhbmRz
WzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0cl0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJ4b3Jp
IiwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJiaWd0ZXEiLCBbdG1wLCBNSVBTX1pFUk9fUkVHLCBub0Zsb3dSZWZdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAi
eG9yaSIsIFt0ciwgbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJpbHQiLCBb
dG1wLCBNSVBTX1pFUk9fUkVHLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9GbG93CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW3RyLCBub2RlLm9w
ZXJhbmRzWzFdXSkKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAib3JpIgorICAgICAgICAgICAg
ICAgICAgICAgICAgIyBubyBvdndlcmZsb3cgYXQgb3JpCisgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9w
ZXJhbmRzWzAuLjFdLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMV0u
aXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgYWRkciA9IG5vZGUub3BlcmFu
ZHNbMV0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gVG1wLm5ldyhub2RlLmNvZGVPcmln
aW4sIDpncHIpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJsb2FkcCIsIFthZGRyLCB0cl0sIGFubm90YXRpb24pCisg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIG9wLCBbbm9kZS5vcGVyYW5kc1swXSwgdHJdKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVw
IiwgW3RyLCBhZGRyXSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgdHIgPSBub2RlLm9wZXJhbmRzWzFdCisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wLCBub2RlLm9wZXJh
bmRzWzAuLi0yXSwgYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
YnJhbmNoLCBbdHIsIE1JUFNfWkVST19SRUcsIG5vZGUub3BlcmFuZHNbLTFdXSkKKyAgICAgICAg
ICAgICAgICBlbmQKKyAgICAgICAgICAgIHdoZW4gImJpYSIsICJicGEiLCAiYmJhIgorICAgICAg
ICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAg
ICAgICAgIGNvbXAgPSBub2RlLm9wY29kZVsxXSA9PSA/YiA/ICJzbHR1YiIgOiAic2x0dSIKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IGNvbXAsIFt0bXAsIG5vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF1dLCBhbm5vdGF0
aW9uKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImJueiIsIFt0bXAsIE1JUFNfWkVST19SRUcsIG5vZGUub3BlcmFuZHNbMl1dKQor
ICAgICAgICAgICAgd2hlbiAiYmlhZXEiLCAiYnBhZXEiLCAiYmJhZXEiCisgICAgICAgICAgICAg
ICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAg
Y29tcCA9IG5vZGUub3Bjb2RlWzFdID09ID9iID8gInNsdHViIiA6ICJzbHR1IgorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwg
W3RtcCwgbm9kZS5vcGVyYW5kc1swXSwgbm9kZS5vcGVyYW5kc1sxXV0sIGFubm90YXRpb24pCisg
ICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2lu
LCAiYnoiLCBbdG1wLCBNSVBTX1pFUk9fUkVHLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAg
ICAgIHdoZW4gImJpYiIsICJicGIiLCAiYmJiIgorICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5u
ZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgIGNvbXAgPSBub2RlLm9w
Y29kZVsxXSA9PSA/YiA/ICJzbHR1YiIgOiAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdMaXN0
IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIGNvbXAsIFt0bXAsIG5vZGUub3Bl
cmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV1dLCBhbm5vdGF0aW9uKQorICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgImJueiIsIFt0bXAs
IE1JUFNfWkVST19SRUcsIG5vZGUub3BlcmFuZHNbMl1dKQorICAgICAgICAgICAgd2hlbiAiYmli
ZXEiLCAiYnBiZXEiLCAiYmJiZXEiCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgY29tcCA9IG5vZGUub3Bjb2RlWzFd
ID09ID9iID8gInNsdHViIiA6ICJzbHR1IgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgY29tcCwgW3RtcCwgbm9kZS5vcGVyYW5kc1sx
XSwgbm9kZS5vcGVyYW5kc1swXV0sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnoiLCBbdG1wLCBNSVBTX1pF
Uk9fUkVHLCBub2RlLm9wZXJhbmRzWzJdXSkKKyAgICAgICAgICAgIHdoZW4gImJ0aXoiLCAiYnRw
eiIsICJidGJ6IgorICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwg
ImJ6Iiwgbm9kZSkKKyAgICAgICAgICAgIHdoZW4gImJ0aW56IiwgImJ0cG56IiwgImJ0Ym56Igor
ICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJueiIsIG5vZGUp
CisgICAgICAgICAgICB3aGVuICJidGlvIiwgImJ0cG8iLCAiYnRibyIKKyAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgICAgIHdoZW4gImJ0aXMiLCAiYnRwcyIsICJidGJz
IgorICAgICAgICAgICAgICAgIGxvd2VyTUlQU0NvbmRCcmFuY2gobmV3TGlzdCwgImJzIiwgbm9k
ZSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUK
KyAgICAgICAgZW5kCisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIFNwZWNpYWxpemF0
aW9uIG9mIGxvd2VyaW5nIG9mIG1hbGZvcm1lZCBCYXNlSW5kZXggYWRkcmVzc2VzLgorIworCitj
bGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgcmlzY0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzUmVjdXJz
ZShsaXN0LCBub2RlLCAmYmxvY2spCisgICAgICAgIGlmIHNjYWxlU2hpZnQgPT0gMAorICAgICAg
ICAgICAgdG1wMCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKKyAgICAgICAgICAgIGxpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KGNvZGVPcmlnaW4sICJhZGRwIiwgW2Jhc2UsIGluZGV4LCB0bXAw
XSkKKyAgICAgICAgICAgIEFkZHJlc3MubmV3KGNvZGVPcmlnaW4sIHRtcDAsIEltbWVkaWF0ZS5u
ZXcoY29kZU9yaWdpbiwgb2Zmc2V0LnZhbHVlKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRtcDAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICBsaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCAibHNoaWZ0aSIsIFtpbmRleCwgSW1tZWRpYXRlLm5l
dyhjb2RlT3JpZ2luLCBzY2FsZVNoaWZ0KSwgdG1wMF0pOworICAgICAgICAgICAgbGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgImFkZHAiLCBbYmFzZSwgdG1wMF0pCisgICAgICAg
ICAgICBBZGRyZXNzLm5ldyhjb2RlT3JpZ2luLCB0bXAwLCBJbW1lZGlhdGUubmV3KGNvZGVPcmln
aW4sIG9mZnNldC52YWx1ZSkpOworICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisjIExv
d2VyaW5nIG9mIG1pc3BsYWNlZCBpbW1lZGlhdGVzIG9mIE1JUFMgc3BlY2lmaWMgaW5zdHJ1Y3Rp
b25zLiBGb3IgZXhhbXBsZToKKyMKKyMgc2x0dSByZWcsIDQsIDIKKyMKKyMgd2lsbCBiZWNvbWU6
CisjCisjIG1vdmUgNCwgdG1wCisjIHNsdHUgcmVnLCB0bXAsIDIKKyMKKworZGVmIG1pcHNMb3dl
ck1pc3BsYWNlZEltbWVkaWF0ZXMobGlzdCkKKyAgICBuZXdMaXN0ID0gW10KKyAgICBsaXN0LmVh
Y2ggeworICAgICAgICB8IG5vZGUgfAorICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9u
CisgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCisgICAgICAgICAgICB3aGVuICJzbHQiLCAi
c2x0dSIsICJzbHRiIiwgInNsdHViIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNb
MV0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9k
ZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMV0sIHRt
cF0sIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGUub3BlcmFuZHNbMF0sIHRtcCwg
bm9kZS5vcGVyYW5kc1syXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUuYW5ub3RhdGlvbikKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAg
ZW5kCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBl
bmQKKyAgICB9CisgICAgbmV3TGlzdAorZW5kCisKKyMKKyMgU3BlY2lhbGl6YXRpb24gb2YgbG93
ZXJpbmcgb2YgbWlzcGxhY2VkIGFkZHJlc3Nlcy4KKyMKKworZGVmIG1pcHNMb3dlck1pc3BsYWNl
ZEFkZHJlc3NlcyhsaXN0KQorICAgIG5ld0xpc3QgPSBbXQorICAgIGxpc3QuZWFjaCB7CisgICAg
ICAgIHwgbm9kZSB8CisgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAg
ICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUu
YW5ub3RhdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAgd2hl
biAiam1wIgorICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uYWRkcmVzcz8KKyAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5vcGVyYW5k
c1swXS5jb2RlT3JpZ2luLCAibG9hZGkiLCBbbm9kZS5vcGVyYW5kc1swXSwgTUlQU19KVU1QX1JF
R10pCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtNSVBTX0pVTVBfUkVHXSkKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtyaXNjQXNSZWdpc3RlcihuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2Rl
Lm9wZXJhbmRzWzBdLCAicCIsIGZhbHNlKV0pCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAg
ICAgICB3aGVuICJjYWxsIgorICAgICAgICAgICAgICAgIHJlc3RvcmVHUCA9IGZhbHNlOworICAg
ICAgICAgICAgICAgIHRtcCA9IE1JUFNfQ0FMTF9SRUcKKyAgICAgICAgICAgICAgICBpZiBub2Rl
Lm9wZXJhbmRzWzBdLmFkZHJlc3M/CisgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgImxvYWRwIiwgW25vZGUu
b3BlcmFuZHNbMF0sIE1JUFNfQ0FMTF9SRUddKQorICAgICAgICAgICAgICAgICAgICByZXN0b3Jl
R1AgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2lmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8g
TGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgdG1wID0gbm9kZS5vcGVyYW5kc1sw
XQorICAgICAgICAgICAgICAgICAgICByZXN0b3JlR1AgPSB0cnVlOworICAgICAgICAgICAgICAg
IGVsc2lmIG5vZGUub3BlcmFuZHNbMF0ucmVnaXN0ZXI/CisgICAgICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUub3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgIm1v
dmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgTUlQU19DQUxMX1JFR10pCisgICAgICAgICAgICAgICAg
ICAgIHJlc3RvcmVHUCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICB0bXAgPSBub2RlLm9wZXJhbmRzWzBdCisgICAgICAgICAgICAgICAgZW5kCisgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBu
b2RlLm9wY29kZSwgW3RtcF0pCisgICAgICAgICAgICAgICAgaWYgcmVzdG9yZUdQCisgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
Im1vdmUiLCBbTUlQU19HUFNBVkVfUkVHLCBNSVBTX0dQX1JFR10pCisgICAgICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICB3aGVuICJzbHQiLCAic2x0dSIKKyAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0ZXJzKG5ld0xpc3QsIFtdLCBu
b2RlLm9wZXJhbmRzLCAiaSIpKQorICAgICAgICAgICAgd2hlbiAic2x0dWIiLCAic2x0YiIKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlzY0FzUmVnaXN0
ZXJzKG5ld0xpc3QsIFtdLCBub2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgd2hlbiAi
YnoiLCAiYm56IiwgImJzIiwgImJvIgorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByaXNjQXNSZWdpc3RlcnMobmV3TGlzdCwgW10sIG5vZGUub3BlcmFuZHMs
ICJpIikpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIG5ld0xpc3QgKz0gcG9zdEluc3RydWN0aW9u
cworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKKyAgICAgICAgZW5k
CisgICAgfQorICAgIG5ld0xpc3QKK2VuZAorCisjCisjIExvd2VyaW5nIGNvbXBhcmVzIGFuZCB0
ZXN0cy4KKyMKKworZGVmIG1pcHNMb3dlckNvbXBhcmVUZW1wbGF0ZShsaXN0LCBub2RlLCBvcENt
cCwgb3BNb3YpCisgICAgdG1wMCA9IFRtcC5uZXcobm9kZS5jb2RlT3JpZ2luLCA6Z3ByKQorICAg
IHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKKyAgICBsaXN0IDw8IEluc3Ry
dWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW0ltbWVkaWF0ZS5uZXcobmlsLCAw
KSwgbm9kZS5vcGVyYW5kc1syXV0pCisgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5j
b2RlT3JpZ2luLCBvcENtcCwgW25vZGUub3BlcmFuZHNbMV0sIG5vZGUub3BlcmFuZHNbMF0sIHRt
cDBdKQorICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUi
LCBbSW1tZWRpYXRlLm5ldyhuaWwsIDEpLCB0bXAxXSkKKyAgICBsaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sIG9wTW92LCBbbm9kZS5vcGVyYW5kc1syXSwgdG1wMSwgdG1w
MF0pCitlbmQKKworZGVmIG1pcHNMb3dlckNvbXBhcmVzKGxpc3QpCisgICAgbmV3TGlzdCA9IFtd
CisgICAgbGlzdC5lYWNoIHsKKyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgaWYgbm9kZS5pc19h
PyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQorICAgICAgICAgICAg
d2hlbiAiY2llcSIsICJjcGVxIiwgImNiZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29t
cGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdnoiKQorICAgICAgICAgICAg
d2hlbiAiY2luZXEiLCAiY3BuZXEiLCAiY2JuZXEiCisgICAgICAgICAgICAgICAgbWlwc0xvd2Vy
Q29tcGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJzdWJwIiwgIm1vdm4iKQorICAgICAgICAg
ICAgd2hlbiAidGl6IiwgInRieiIsICJ0cHoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29t
cGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdnoiKQorICAgICAgICAgICAg
d2hlbiAidGlueiIsICJ0Ym56IiwgInRwbnoiCisgICAgICAgICAgICAgICAgbWlwc0xvd2VyQ29t
cGFyZVRlbXBsYXRlKG5ld0xpc3QsIG5vZGUsICJhbmRwIiwgIm1vdm4iKQorICAgICAgICAgICAg
d2hlbiAidGlvIiwgInRibyIsICJ0cG8iCisgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9w
ZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJhbmRzWzJdLCBNSVBTX1pFUk9fUkVH
LCB0bXBdKQorICAgICAgICAgICAgd2hlbiAidGlzIiwgInRicyIsICJ0cHMiCisgICAgICAgICAg
ICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpncHIpCisgICAgICAgICAgICAg
ICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYW5kcCIsIFtub2Rl
Lm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQorICAgICAgICAgICAgICAgIGxp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNsdCIsIFtub2RlLm9wZXJh
bmRzWzJdLCB0bXAsIE1JUFNfWkVST19SRUddKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQorICAgICAgICBlbmQKKyAgICB9CisgICAgbmV3TGlz
dAorZW5kCisKKyMKKyMgTGVhIHN1cHBvcnQuCisjCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYg
bWlwc0VtaXRMZWEoZGVzdGluYXRpb24pCisgICAgICAgIGlmIGRlc3RpbmF0aW9uID09IGJhc2UK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUgI3tkZXN0aW5hdGlvbi5taXBzT3BlcmFuZH0s
ICN7b2Zmc2V0LnZhbHVlfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGRpdSAje2Rlc3RpbmF0aW9uLm1pcHNPcGVyYW5kfSwgI3tiYXNlLm1pcHNPcGVyYW5kfSwgI3tv
ZmZzZXQudmFsdWV9IgorICAgICAgICBlbmQKKyAgICBlbmQKK2VuZAorCisjCisjIEFkZCBQSUMg
Y29tcGF0aWJsZSBoZWFkZXIgY29kZSB0byBwcm9sb2d1ZS9lbnRyeSBydXRpbnMuCisjCisKK2Rl
ZiBtaXBzQWRkUElDQ29kZShsaXN0KQorICAgIG15TGlzdCA9IFtdCisgICAgbGlzdC5lYWNoIHsK
KyAgICAgICAgfCBub2RlIHwKKyAgICAgICAgbXlMaXN0IDw8IG5vZGUKKyAgICAgICAgaWYgbm9k
ZS5pc19hPyBMYWJlbAorICAgICAgICAgICAgaWYgL19wcm9sb2d1ZSQvLm1hdGNoKG5vZGUubmFt
ZSkgfHwgL15fbGxpbnRfZnVuY3Rpb25fLy5tYXRjaChub2RlLm5hbWUpCisgICAgICAgICAgICAg
ICAgIyBGdW5jdGlvbnMgY2FsbGVkIGZyb20gdHJhbXBvbGluZS9KSVQgY29kZXMuCisgICAgICAg
ICAgICAgICAgbXlMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJwaWNo
ZHIiLCBbXSkKKyAgICAgICAgICAgIGVsc2lmIC9fbGxpbnRfb3BfY2F0Y2gvLm1hdGNoKG5vZGUu
bmFtZSkKKyAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbiBjYWN0Y2hlciBlbnRyeSBwb2ludCBm
dW5jdGlvbi4KKyAgICAgICAgICAgICAgICBteUxpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgInBpY2hkcnJhIiwgW10pCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5k
CisgICAgfQorICAgIG15TGlzdAorZW5kCisKKyMKKyMgQWN0dWFsIGxvd2VyaW5nIGNvZGUgZm9s
bG93cy4KKyMKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0TUlQUwor
ICAgICAgICByZXN1bHQgPSBAbGlzdAorCisgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2lsbCBv
bmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KKyAgICAgICAgcmVzdWx0LmVhY2ggewor
ICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIHVubGVzcyBub2RlLmlzX2E/IEluc3Ry
dWN0aW9uIG9yCisgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAg
ICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAgICAgICAgICAgICAg
ICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkICN7
bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1pcHNBZGRQSUNDb2RlKHJlc3VsdCkKKyAgICAg
ICAgcmVzdWx0ID0gbWlwc0xvd2VyU2ltcGxlQnJhbmNoT3BzKHJlc3VsdCkKKyAgICAgICAgcmVz
dWx0ID0gcmlzY0xvd2VyU2ltcGxlQnJhbmNoT3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0g
cmlzY0xvd2VySGFyZEJyYW5jaE9wcyhyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IHJpc2NMb3dl
clNoaWZ0T3BzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkQWRk
cmVzc2VzKHJlc3VsdCkgeworICAgICAgICAgICAgfCBub2RlLCBhZGRyZXNzIHwKKyAgICAgICAg
ICAgIGlmIGFkZHJlc3MuaXNfYT8gQWRkcmVzcworICAgICAgICAgICAgICAgICgtMHhmZmZmLi4w
eGZmZmYpLmluY2x1ZGU/IGFkZHJlc3Mub2Zmc2V0LnZhbHVlCisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisgICAgICAg
IHJlc3VsdCA9IHJpc2NMb3dlck1hbGZvcm1lZEFkZHJlc3Nlc0RvdWJsZShyZXN1bHQpCisgICAg
ICAgIHJlc3VsdCA9IHJpc2NMb3dlck1pc3BsYWNlZEltbWVkaWF0ZXMocmVzdWx0KQorICAgICAg
ICByZXN1bHQgPSBtaXBzTG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKHJlc3VsdCkKKyAgICAgICAg
cmVzdWx0ID0gcmlzY0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhyZXN1bHQsIC0weGZmZmYuLjB4
ZmZmZikKKyAgICAgICAgcmVzdWx0ID0gbWlwc0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJlc3Vs
dCkKKyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKHJlc3VsdCkK
KyAgICAgICAgcmVzdWx0ID0gcmlzY0xvd2VyUmVnaXN0ZXJSZXVzZShyZXN1bHQpCisgICAgICAg
IHJlc3VsdCA9IG1pcHNMb3dlckNvbXBhcmVzKHJlc3VsdCkKKyAgICAgICAgcmVzdWx0ID0gYXNz
aWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhyZXN1bHQsIDpncHIsIE1JUFNfVEVNUF9HUFJTKQor
ICAgICAgICByZXN1bHQgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKHJlc3VsdCwgOmZw
ciwgTUlQU19URU1QX0ZQUlMpCisKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGVuZAorZW5k
CisKK2RlZiBtaXBzT3BlcmFuZHMob3BlcmFuZHMpCisgICAgb3BlcmFuZHMubWFwe3x2fCB2Lm1p
cHNPcGVyYW5kfS5qb2luKCIsICIpCitlbmQKKworZGVmIG1pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpCisgICAgbWlwc09wZXJhbmRzKFtvcGVyYW5kc1stMV1dICsgb3BlcmFuZHNbMC4uLTJd
KQorZW5kCisKK2RlZiBnZXRNSVBTT3Bjb2RlKG9wY29kZSwgc3VmZml4KQorCitlbmQKKworZGVm
IGVtaXRNSVBTQ29tcGFjdChvcGNvZGUsIG9wY29kZWksIG9wZXJhbmRzKQorICAgIHBvc3RmaXgg
PSAiIgorICAgIGlmIG9wY29kZSA9PSAic3ViIgorICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUKKyAgICAgICAgICAgIG9wY29kZSA9ICJhZGQiCisgICAgICAgICAgICBvcGVy
YW5kc1swXSA9IEltbWVkaWF0ZS5uZXcob3BlcmFuZHNbMF0uY29kZU9yaWdpbiwgLTEgKiBvcGVy
YW5kc1swXS52YWx1ZSkKKyAgICAgICAgZWxzaWYgb3BlcmFuZHNbMV0uaXNfYT8gSW1tZWRpYXRl
CisgICAgICAgICAgICBvcGNvZGUgPSAiYWRkIgorICAgICAgICAgICAgb3BlcmFuZHNbMV0gPSBJ
bW1lZGlhdGUubmV3KG9wZXJhbmRzWzFdLmNvZGVPcmlnaW4sIC0xICogb3BlcmFuZHNbMV0udmFs
dWUpCisgICAgICAgIGVuZAorICAgICAgICBwb3N0Zml4ID0gInUiCisgICAgZWxzaWYgb3Bjb2Rl
ID09ICJhZGQiCisgICAgICAgIHBvc3RmaXggPSAidSIKKyAgICBlbmQKKyAgICBpZiBvcGVyYW5k
cy5zaXplID09IDMKKyAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfWkje3Bvc3RmaXh9ICN7b3BlcmFuZHNbMl0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1
ZX0iCisgICAgICAgIGVsc2lmIG9wZXJhbmRzWzFdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAg
ICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAje29wZXJhbmRzWzJdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0udmFsdWV9Igor
ICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0g
I3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIGVuZAorICAgIGVsc2UK
KyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHNbMV0ucmVnaXN0ZXI/CisgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlzX2E/
IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX1pI3twb3N0Zml4fSAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNt
LnB1dHMgIiN7b3Bjb2RlfSN7cG9zdGZpeH0gI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAg
ICAgICAgZW5kCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTU2hpZnRDb21wYWN0KG9wY29k
ZSwgb3BlcmFuZHMpCisgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzCisgICAgICAgIGlmIChvcGVy
YW5kc1sxXS5pc19hPyBJbW1lZGlhdGUpCisgICAgICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2Rl
fSAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0udmFsdWV9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAkYXNtLnB1
dHMgIiN7b3Bjb2RlfXYgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IGVuZAorICAgIGVsc2UKKyAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzLnNpemUgPT0gMgor
ICAgICAgICBpZiBvcGVyYW5kc1swXS5yZWdpc3Rlcj8KKyAgICAgICAgICAgICRhc20ucHV0cyAi
I3tvcGNvZGV9diAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBz
T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICBlbHNlCisgICAg
ICAgICAgICAkYXNtLnB1dHMgIiN7b3Bjb2RlfSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0udmFsdWV9IgorICAgICAg
ICBlbmQKKyAgICBlbmQKK2VuZAorCitkZWYgZW1pdE1JUFMob3Bjb2RlLCBvcGVyYW5kcykKKyAg
ICBpZiBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgJGFzbS5wdXRzICIje29wY29kZX0gI3tt
aXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgZWxzZQorICAgICAgICByYWlzZSB1
bmxlc3Mgb3BlcmFuZHMuc2l6ZSA9PSAyCisgICAgICAgICRhc20ucHV0cyAiI3tvcGNvZGV9ICN7
b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tv
cGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgZW5kCitlbmQKKworZGVmIGVtaXRNSVBTRG91
YmxlQnJhbmNoKGJyYW5jaE9wY29kZSwgbmVnLCBvcGVyYW5kcykKKyAgICAkYXNtLnB1dHMgImMu
I3ticmFuY2hPcGNvZGV9LmQgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHNbMC4uMV0pfSIKKyAgICBp
ZiAoIW5lZykKKyAgICAgICAgJGFzbS5wdXRzICJiYzF0ICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9
IgorICAgIGVsc2UKKyAgICAgICAgJGFzbS5wdXRzICJiYzFmICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisgICAgZGVmIGxvd2VyTUlQ
UworICAgICAgICAkYXNtLmNvbW1lbnQgY29kZU9yaWdpblN0cmluZworICAgICAgICBjYXNlIG9w
Y29kZQorICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiCisgICAgICAgICAgICBp
ZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAg
ICAgICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1sxXS5yZWdpc3Rlcj8KKyAgICAgICAg
ICAgICAgICByYWlzZSB1bmxlc3Mgb3BlcmFuZHNbMl0ucmVnaXN0ZXI/CisgICAgICAgICAgICAg
ICAgaWYgb3BlcmFuZHNbMF0udmFsdWUgPT0gMCAjYW5kIHN1ZmZpeC5lbXB0eT8KKyAgICAgICAg
ICAgICAgICAgICAgdW5sZXNzIG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCisgICAgICAgICAg
ICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0s
ICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
I3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIGVsc2lmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0ucmVnaXN0ZXI/Cisg
ICAgICAgICAgICAgICAgcmFpc2UgdW5sZXNzIG9wZXJhbmRzWzFdLnJlZ2lzdGVyPworICAgICAg
ICAgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kc1syXS5yZWdpc3Rlcj8KKyAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImFkZHUgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8gSW1t
ZWRpYXRlCisgICAgICAgICAgICAgICAgICAgIHVubGVzcyBJbW1lZGlhdGUubmV3KG5pbCwgMCkg
PT0gb3BlcmFuZHNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkaXUg
I3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5k
cyl9IgorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICRhc20ucHV0cyAiYWRkdSAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9
IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImFu
ZGkiLCAiYW5kcCIKKyAgICAgICAgICAgIGVtaXRNSVBTQ29tcGFjdCgiYW5kIiwgImFuZCIsIG9w
ZXJhbmRzKQorICAgICAgICB3aGVuICJvcmkiLCAib3JwIgorICAgICAgICAgICAgZW1pdE1JUFND
b21wYWN0KCJvciIsICJvcnIiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAib3JpcyIKKyAgICAg
ICAgICAgIGVtaXRNSVBTQ29tcGFjdCgib3IiLCAib3JycyIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJ4b3JpIiwgInhvcnAiCisgICAgICAgICAgICBlbWl0TUlQU0NvbXBhY3QoInhvciIsICJl
b3IiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibHNoaWZ0aSIsICJsc2hpZnRwIgorICAgICAg
ICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNsbCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVu
ICJyc2hpZnRpIiwgInJzaGlmdHAiCisgICAgICAgICAgICBlbWl0TUlQU1NoaWZ0Q29tcGFjdCgi
c3JhIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gInVyc2hpZnRpIiwgInVyc2hpZnRwIgorICAg
ICAgICAgICAgZW1pdE1JUFNTaGlmdENvbXBhY3QoInNybCIsIG9wZXJhbmRzKQorICAgICAgICB3
aGVuICJtdWxpIiwgIm11bHAiCisgICAgICAgICAgICBlbWl0TUlQUygibXVsIiwgb3BlcmFuZHMp
CisgICAgICAgIHdoZW4gInN1YmkiLCAic3VicCIsICJzdWJpcyIKKyAgICAgICAgICAgIGVtaXRN
SVBTQ29tcGFjdCgic3ViIiwgInN1YnMiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAibmVnaSIs
ICJuZWdwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJuZWd1ICN7b3BlcmFuZHNbMF0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibm90aSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAibm9yICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgJHplcm8iCisgICAgICAgIHdoZW4gImxvYWRpIiwg
ImxvYWRpcyIsICJsb2FkcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibHcgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAg
ICAgIHdoZW4gImxvYWRiIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsYnUgI3ttaXBzRmxpcHBl
ZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImxvYWRicyIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibGIgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCisgICAgICAg
IHdoZW4gInN0b3JlYiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2IgI3ttaXBzT3BlcmFuZHMo
b3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGgiCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImxodSAje21pcHNGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9h
ZGhzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJsaCAje21pcHNGbGlwcGVkT3BlcmFuZHMob3Bl
cmFuZHMpfSIKKyAgICAgICAgd2hlbiAic3RvcmVoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJz
aHYgI3ttaXBzT3BlcmFuZHMob3BlcmFuZHMpfSIKKyAgICAgICAgd2hlbiAibG9hZGQiCisgICAg
ICAgICAgICAkYXNtLnB1dHMgImxkYzEgI3ttaXBzRmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0i
CisgICAgICAgIHdoZW4gInN0b3JlZCIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2RjMSAje21p
cHNPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICB3aGVuICJhZGRkIgorICAgICAgICAgICAg
ZW1pdE1JUFMoImFkZC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImRpdmQiCisgICAgICAg
ICAgICBlbWl0TUlQUygiZGl2LmQiLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAic3ViZCIKKyAg
ICAgICAgICAgIGVtaXRNSVBTKCJzdWIuZCIsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJtdWxk
IgorICAgICAgICAgICAgZW1pdE1JUFMoIm11bC5kIiwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4g
InNxcnRkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzcXJ0LmQgI3ttaXBzRmxpcHBlZE9wZXJh
bmRzKG9wZXJhbmRzKX0iCisgICAgICAgIHdoZW4gImNpMmQiCisgICAgICAgICAgICByYWlzZSAi
aW52YWxpZCBvcHMgb2YgI3tzZWxmLmluc3BlY3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVu
bGVzcyBvcGVyYW5kc1sxXS5pc19hPyBGUFJlZ2lzdGVySUQgYW5kIG9wZXJhbmRzWzBdLnJlZ2lz
dGVyPworICAgICAgICAgICAgJGFzbS5wdXRzICJtdGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJh
bmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Y3Z0LmQudyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3Bl
cmFuZH0iCisgICAgICAgIHdoZW4gImJkZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJy
YW5jaCgiZXEiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbmVxIgorICAgICAg
ICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVlcSIsIHRydWUsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZGd0IgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIHRy
dWUsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGd0ZXEiCisgICAgICAgICAgICBlbWl0TUlQ
U0RvdWJsZUJyYW5jaCgidWx0IiwgdHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHQi
CisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0IiwgZmFsc2UsIG9wZXJhbmRz
KQorICAgICAgICB3aGVuICJiZGx0ZXEiCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5j
aCgib2xlIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAgICB3aGVuICJiZGVxdW4iCisgICAgICAg
ICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgidWVxIiwgZmFsc2UsIG9wZXJhbmRzKQorICAgICAg
ICB3aGVuICJiZG5lcXVuIgorICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goImVxIiwg
dHJ1ZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkZ3R1biIKKyAgICAgICAgICAgIGVtaXRN
SVBTRG91YmxlQnJhbmNoKCJvbGUiLCB0cnVlLCBvcGVyYW5kcykKKyAgICAgICAgd2hlbiAiYmRn
dGVxdW4iCisgICAgICAgICAgICBlbWl0TUlQU0RvdWJsZUJyYW5jaCgib2x0IiwgdHJ1ZSwgb3Bl
cmFuZHMpCisgICAgICAgIHdoZW4gImJkbHR1biIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91Ymxl
QnJhbmNoKCJ1bHQiLCBmYWxzZSwgb3BlcmFuZHMpCisgICAgICAgIHdoZW4gImJkbHRlcXVuIgor
ICAgICAgICAgICAgZW1pdE1JUFNEb3VibGVCcmFuY2goInVsZSIsIGZhbHNlLCBvcGVyYW5kcykK
KyAgICAgICAgd2hlbiAiYnRkMmkiCisgICAgICAgICAgICAjIEZJWE1FOiBtYXkgYmUgYSBnb29k
IGlkZWEgdG8ganVzdCBnZXQgcmlkIG9mIHRoaXMgaW5zdHJ1Y3Rpb24sIHNpbmNlIHRoZSBpbnRl
cnByZXRlcgorICAgICAgICAgICAgIyBjdXJyZW50bHkgZG9lcyBub3QgdXNlIGl0LgorICAgICAg
ICAgICAgcmFpc2UgIk1JUFMgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wY29kZSB5ZXQsICN7Y29k
ZU9yaWdpbn0iCisgICAgICAgIHdoZW4gInRkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2
dC53LmQgI3tNSVBTX1NDUkFUQ0hfRlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlw
c09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgd2hl
biAiYmNkMmkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImN2dC53LmQgI3tNSVBTX1NDUkFUQ0hf
RlBSLm1pcHNTaW5nbGVMb30sICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAgICAg
ICAgJGFzbS5wdXRzICJtZmMxICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje01JUFNfU0NS
QVRDSF9GUFIubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiY3Z0LmQudyAj
e01JUFNfU0NSQVRDSF9GUFIubWlwc09wZXJhbmR9LCAje01JUFNfU0NSQVRDSF9GUFIubWlwc1Np
bmdsZUxvfSIKKyAgICAgICAgICAgIGVtaXRNSVBTRG91YmxlQnJhbmNoKCJlcSIsIHRydWUsIFtN
SVBTX1NDUkFUQ0hfRlBSLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl1dKQorICAgICAgICAgICAg
JGFzbS5wdXRzICJiZXEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICR6ZXJvLCAje29wZXJh
bmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAibW92ZHoiCisgICAgICAgICAgICAjIEZJ
WE1FOiBlaXRoZXIgc3VwcG9ydCB0aGlzIG9yIHJlbW92ZSBpdC4KKyAgICAgICAgICAgIHJhaXNl
ICJNSVBTIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGNvZGUgeWV0LCAje2NvZGVPcmlnaW59Igor
ICAgICAgICB3aGVuICJwb3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgImx3ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgICAgICAkYXNtLnB1dHMgImFkZGl1ICRz
cCwgJHNwLCA0IgorICAgICAgICB3aGVuICJwdXNoIgorICAgICAgICAgICAgJGFzbS5wdXRzICJh
ZGRpdSAkc3AsICRzcCwgLTQiCisgICAgICAgICAgICAkYXNtLnB1dHMgInN3ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAwKCRzcCkiCisgICAgICAgIHdoZW4gIm1vdmUiLCAic3hpMnAiLCAi
enhpMnAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAg
ICAgICAgICAgICBtaXBzTW92ZUltbWVkaWF0ZShvcGVyYW5kc1swXS52YWx1ZSwgb3BlcmFuZHNb
MV0pCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICN7
bWlwc0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgorICAgICAgICAgICAgZW5kCisgICAgICAg
IHdoZW4gIm5vcCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibm9wIgorICAgICAgICB3aGVuICJi
aWVxIiwgImJwZXEiLCAiYmJlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmVxICN7bWlwc09w
ZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAg
ICB3aGVuICJiaW5lcSIsICJicG5lcSIsICJiYm5lcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAi
Ym5lICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFi
ZWx9IgorICAgICAgICB3aGVuICJiaWd0IiwgImJwZ3QiLCAiYmJndCIKKyAgICAgICAgICAgICRh
c20ucHV0cyAiYmd0ICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNb
Ml0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWd0ZXEiLCAiYnBndGVxIiwgImJiZ3RlcSIK
KyAgICAgICAgICAgICRhc20ucHV0cyAiYmdlICN7bWlwc09wZXJhbmRzKG9wZXJhbmRzWzAuLjFd
KX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0IiwgImJwbHQi
LCAiYmJsdCIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmx0ICN7bWlwc09wZXJhbmRzKG9wZXJh
bmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJiaWx0
ZXEiLCAiYnBsdGVxIiwgImJibHRlcSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmxlICN7bWlw
c09wZXJhbmRzKG9wZXJhbmRzWzAuLjFdKX0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAg
ICAgICB3aGVuICJqbXAiCisgICAgICAgICAgICBpZiBvcGVyYW5kc1swXS5sYWJlbD8KKyAgICAg
ICAgICAgICAgICAkYXNtLnB1dHMgImogI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJqciAje29wZXJhbmRzWzBdLm1p
cHNPcGVyYW5kfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjYWxsIgorICAgICAg
ICAgICAgaWYgb3BlcmFuZHNbMF0ubGFiZWw/CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJq
YWwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJqYWxyICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9IgorICAgICAg
ICAgICAgZW5kCisgICAgICAgIHdoZW4gImJyZWFrIgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
cmVhayIKKyAgICAgICAgd2hlbiAicmV0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJqciAkcmEi
CisgICAgICAgIHdoZW4gImNpYSIsICJjcGEiLCAiY2JhIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpYWVxIiwg
ImNwYWVxIiwgImNiYWVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNb
Ml0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMgInhvcmkgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpYiIsICJjcGIiLCAiY2JiIgorICAg
ICAgICAgICAgJGFzbS5wdXRzICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29w
ZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAg
ICAgIHdoZW4gImNpYmVxIiwgImNwYmVxIiwgImNiYmVxIgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJzbHR1ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVy
YW5kfSwgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0iCisgICAgICAgICAgICAkYXNtLnB1dHMg
InhvcmkgI3tvcGVyYW5kc1syXS5taXBzT3BlcmFuZH0sIDEiCisgICAgICAgIHdoZW4gImNpZ3Qi
LCAiY3BndCIsICJjYmd0IgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVyYW5kc1sy
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBd
Lm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAiY2lndGVxIiwgImNwZ3RlcSIsICJjYmd0ZXEi
CisgICAgICAgICAgICAkYXNtLnB1dHMgInNsdCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwg
I3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9Igor
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3JpICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAx
IgorICAgICAgICB3aGVuICJjaWx0IiwgImNwbHQiLCAiY2JsdCIKKyAgICAgICAgICAgICRhc20u
cHV0cyAic2x0ICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0iCisgICAgICAgIHdoZW4gImNpbHRl
cSIsICJjcGx0ZXEiLCAiY2JsdGVxIgorICAgICAgICAgICAgJGFzbS5wdXRzICJzbHQgI3tvcGVy
YW5kc1syXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9LCAje29wZXJh
bmRzWzBdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAieG9yaSAje29wZXJh
bmRzWzJdLm1pcHNPcGVyYW5kfSwgMSIKKyAgICAgICAgd2hlbiAicGVlayIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibHcgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
dmFsdWUgKiA0fSgkc3ApIgorICAgICAgICB3aGVuICJwb2tlIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzdyAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS52YWx1ZSAq
IDR9KCRzcCkiCisgICAgICAgIHdoZW4gImZpaTJkIgorICAgICAgICAgICAgJGFzbS5wdXRzICJt
dGMxICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNTaW5nbGVM
b30iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm10YzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFu
ZH0sICN7b3BlcmFuZHNbMl0ubWlwc1NpbmdsZUhpfSIKKyAgICAgICAgd2hlbiAiZmQyaWkiCisg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1mYzEgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7
b3BlcmFuZHNbMF0ubWlwc1NpbmdsZUxvfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZjMSAj
e29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5taXBzU2luZ2xlSGl9Igor
ICAgICAgICB3aGVuICJibyIKKyAgICAgICAgICAgICRhc20ucHV0cyAiYmd0ICN7b3BlcmFuZHNb
MF0ubWlwc09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sy
XS5hc21MYWJlbH0iCisgICAgICAgIHdoZW4gImJzIgorICAgICAgICAgICAgJGFzbS5wdXRzICJi
bHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09wZXJhbmR9
LCAje29wZXJhbmRzWzJdLmFzbUxhYmVsfSIKKyAgICAgICAgd2hlbiAiYnoiCisgICAgICAgICAg
ICAkYXNtLnB1dHMgImJlcSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1sx
XS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9IgorICAgICAgICB3aGVuICJi
bnoiCisgICAgICAgICAgICAkYXNtLnB1dHMgImJuZSAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5k
fSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9Igor
ICAgICAgICB3aGVuICJsZWFpIiwgImxlYXAiCisgICAgICAgICAgICBvcGVyYW5kc1swXS5taXBz
RW1pdExlYShvcGVyYW5kc1sxXSkKKyAgICAgICAgd2hlbiAic211bGxpIgorICAgICAgICAgICAg
cmFpc2UgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gc211bGwgaW4gI3tzZWxmLmluc3Bl
Y3R9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBvcGVyYW5kcy5sZW5ndGggPT0gNAor
ICAgICAgICAgICAgJGFzbS5wdXRzICJtdWx0ICN7b3BlcmFuZHNbMF0ubWlwc09wZXJhbmR9LCAj
e29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZsbyAj
e29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibWZoaSAj
e29wZXJhbmRzWzNdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAibW92eiIKKyAgICAgICAg
ICAgICRhc20ucHV0cyAibW92eiAje29wZXJhbmRzWzBdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5k
c1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09wZXJhbmR9IgorICAgICAgICB3
aGVuICJtb3ZuIgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZuICN7b3BlcmFuZHNbMF0ubWlw
c09wZXJhbmR9LCAje29wZXJhbmRzWzFdLm1pcHNPcGVyYW5kfSwgI3tvcGVyYW5kc1syXS5taXBz
T3BlcmFuZH0iCisgICAgICAgIHdoZW4gInNsdCIsICJzbHRiIgorICAgICAgICAgICAgJGFzbS5w
dXRzICJzbHQgI3tvcGVyYW5kc1swXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0ubWlwc09w
ZXJhbmR9LCAje29wZXJhbmRzWzJdLm1pcHNPcGVyYW5kfSIKKyAgICAgICAgd2hlbiAic2x0dSIs
ICJzbHR1YiIKKyAgICAgICAgICAgICRhc20ucHV0cyAic2x0dSAje29wZXJhbmRzWzBdLm1pcHNP
cGVyYW5kfSwgI3tvcGVyYW5kc1sxXS5taXBzT3BlcmFuZH0sICN7b3BlcmFuZHNbMl0ubWlwc09w
ZXJhbmR9IgorICAgICAgICB3aGVuICJwaWNoZHIiCisgICAgICAgICAgICAkYXNtLnB1dFN0cigi
T0ZGTElORV9BU01fQ1BMT0FEKCQyNSkiKQorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZlICRz
NCwgJGdwIgorICAgICAgICB3aGVuICJwaWNoZHJyYSIKKyAgICAgICAgICAgICRhc20ucHV0U3Ry
KCJPRkZMSU5FX0FTTV9DUExPQUQoJDMxKSIpCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmUg
JHM0LCAkZ3AiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlICJVbmhhbmRsZWQgb3Bj
b2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKKyAgICBl
bmQKK2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAyNTE3YWQ2Li4zN2QwMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEz
LTAxLTA3ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAg
ICAgTUlQUyBMTEludCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAg
UGl6bG8uCisKKyAgICAgICAgTExJbnQgaW1wbGVtZW50YXRpb24gZm9yIE1JUFMuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMy0wMS0wNSAgSm9uYXRoYW4gTGl1ICA8bmV0MTQ3
QGdtYWlsLmNvbT4KIAogICAgICAgICBPbmx5IGVuYWJsZSBNaW5HVy13NjQgcG93KCkgd29ya2Fy
b3VuZCBpZiBuZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGYyZmQzYjAuLmUzMWU1ZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaApAQCAtOTI3LDcgKzkyNyw3IEBACiAgICAgJiYgRU5BQkxFKEpJVCkgXAogICAgICYmIChP
UyhEQVJXSU4pIHx8IE9TKExJTlVYKSkgXAogICAgICYmIChQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKElPUykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkpIFwKLSAgICAmJiAoQ1BV
KFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpKQorICAgICYmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKQogI2RlZmlu
ZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>