<?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>129762</bug_id>
          
          <creation_ts>2014-03-05 15:35:02 -0800</creation_ts>
          <short_desc>Don&apos;t generate bytecode expression range info unless it&apos;s needed.</short_desc>
          <delta_ts>2014-03-05 15:58:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987421</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-05 15:35:02 -0800</bug_when>
    <thetext>Patch a-comin&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987422</commentid>
    <comment_count>1</comment_count>
      <attachid>225922</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-05 15:42:24 -0800</bug_when>
    <thetext>Created attachment 225922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987428</commentid>
    <comment_count>2</comment_count>
      <attachid>225922</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-05 15:58:38 -0800</bug_when>
    <thetext>Comment on attachment 225922
Patch

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

I&apos;d love to see m_metadataForReparse turned into a ParserContext class, which we also pass as input to the parser. That way, the thing we save is the thing we passed to the parser, an it&apos;s more obvious that this is right, and harder to change wrong in future.

I&apos;d also love to shared some code with generateFunctionCodeBlock and/or getGlobalCodeBlock for doing this creation dance. My gut says there&apos;s some code that could meaningfully be shared -- but I haven&apos;t analyzed it fully.

&gt; Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp:322
&gt; +void UnlinkedCodeBlock::materializeExpressionInfo()

materializeExpressionInfoIfNecessary?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225922</attachid>
            <date>2014-03-05 15:42:24 -0800</date>
            <delta_ts>2014-03-05 15:58:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129762.diff</filename>
            <type>text/plain</type>
            <size>20343</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE4ZThmMjIuLmQ4MTRjOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTAzLTA1ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBnZW5lcmF0ZSBieXRlY29kZSBl
eHByZXNzaW9uIHJhbmdlIGluZm8gdW5sZXNzIGl0J3MgbmVlZGVkLgorICAgICAgICA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTI5NzYyPgorCisgICAgICAgIEluIHRoZSBjb21tb24gY2FzZSwgd2Ug
bmV2ZXIgdXNlIHRoZSBleHByZXNzaW9uIHJhbmdlIGluZm8gdGhhdCBoYW5ncworICAgICAgICBv
ZmYgb2YgVW5saW5rZWRDb2RlQmxvY2ssIGJ1dCBpdCB0YWtlcyB1cCBhIHdob2xlIGJ1bmNoIG9m
IHNwYWNlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc2tpcHMgZ2VuZXJhdGluZyB0aGUgaW5mb3Jt
YXRpb24gaW4gbmV3IHVubGlua2VkIGNvZGUuCisgICAgICAgIEluc3RlYWQgd2Ugc3F1aXJyZWwg
YXdheSBhIGxpdHRsZSBtZXRhZGF0YSBhYm91dCB0aGUgc291cmNlIGNvZGUgc28KKyAgICAgICAg
d2UgY2FuIGdlbmVyYXRlIHRoZSBpbmZvIG9uIGRlbWFuZCBsYXRlci4gKFdlIGRvIHRoYXQgYnkg
cmVwYXJzaW5nCisgICAgICAgIGZyb20gc291cmNlLikKKworICAgICAgICAxLjUgTUIgcHJvZ3Jl
c3Npb24gb24gTWVtYnVzdGVyIE9TVVMuCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBtZXRhZGF0
YSBpcyBzdG9yZWQgcGVyIFVubGlua2VkQ29kZUJsb2NrLgorCisgICAgICAgICAgICAtIFNvdXJj
ZUNvZGUKKyAgICAgICAgICAgIC0gRGVidWdnZXJNb2RlCisgICAgICAgICAgICAtIFByb2ZpbGVy
TW9kZQorICAgICAgICAgICAgLSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSAoZm9yIGZ1bmN0
aW9uIGNvZGUpCisgICAgICAgICAgICAtIFN0cmljdG5lc3MgKGZvciBldmFsL2dsb2JhbCBjb2Rl
KQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZUZ1bmN0
aW9uQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OmR1bXBFeHBy
ZXNzaW9uUmFuZ2VJbmZvKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6Om1hdGVy
aWFsaXplRXhwcmVzc2lvbkluZm8pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6
c2F2ZU1ldGFkYXRhRm9yUHJvZ3JhbVJlcGFyc2UpOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENv
ZGVCbG9jazo6c2F2ZU1ldGFkYXRhRm9yRnVuY3Rpb25SZXBhcnNlKToKKyAgICAgICAgKEpTQzo6
VW5saW5rZWRDb2RlQmxvY2s6OmV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2RlT2Zmc2V0KToKKyAg
ICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OmFkZEV4cHJlc3Npb25JbmZvKToKKyAgICAg
ICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6Omhhc0V4cHJlc3Npb25JbmZvKToKKyAgICAgICAg
KiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENv
ZGVCbG9jazo6c2hyaW5rVG9GaXQpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdl
bmVyYXRvcik6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RXhwcmVzc2lvbkluZm8pOgorICAg
ICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpn
ZXRHbG9iYWxDb2RlQmxvY2spOgorCiAyMDE0LTAzLTA1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRlRMIGxvYWRTdHJ1Y3R1cmUgYWx3YXlzIGdlbmVyYXRlcyBp
bnZhbGlkIElSCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5s
aW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcAppbmRleCBjZGFkNGEyLi40MWQ3YWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKQEAgLTY0
LDExICs2NCwxMiBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2VuZXJhdGVG
dW5jdGlvbkNvZGVCbG9jayhWTSYgdm0sIFVubGlua2VkRnVuYwogICAgIGV4ZWN1dGFibGUtPnJl
Y29yZFBhcnNlKGJvZHktPmZlYXR1cmVzKCksIGJvZHktPmhhc0NhcHR1cmVkVmFyaWFibGVzKCkp
OwogICAgIAogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIHJlc3VsdCA9IFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2s6OmNyZWF0ZSgmdm0sIEZ1bmN0aW9uQ29kZSwgRXhlY3V0YWJsZUlu
Zm8oYm9keS0+bmVlZHNBY3RpdmF0aW9uKCksIGJvZHktPnVzZXNFdmFsKCksIGJvZHktPmlzU3Ry
aWN0TW9kZSgpLCBraW5kID09IENvZGVGb3JDb25zdHJ1Y3QsIGZ1bmN0aW9uS2luZCA9PSBVbmxp
bmtlZEJ1aWx0aW5GdW5jdGlvbikpOwotICAgIE93blB0cjxCeXRlY29kZUdlbmVyYXRvcj4gZ2Vu
ZXJhdG9yKGFkb3B0UHRyKG5ldyBCeXRlY29kZUdlbmVyYXRvcih2bSwgYm9keS5nZXQoKSwgcmVz
dWx0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSkpKTsKKyAgICBhdXRvIGdlbmVyYXRvciA9
IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVHZW5lcmF0b3I+KHZtLCBib2R5LmdldCgpLCByZXN1
bHQsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBEb05vdEdlbmVyYXRlRXhwcmVzc2lvbklu
Zm8pOwogICAgIGVycm9yID0gZ2VuZXJhdG9yLT5nZW5lcmF0ZSgpOwogICAgIGJvZHktPmRlc3Ry
b3lEYXRhKCk7CiAgICAgaWYgKGVycm9yLm1fdHlwZSAhPSBQYXJzZXJFcnJvcjo6RXJyb3JOb25l
KQogICAgICAgICByZXR1cm4gMDsKKyAgICByZXN1bHQtPnNhdmVNZXRhZGF0YUZvckZ1bmN0aW9u
UmVwYXJzZShzb3VyY2UsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBleGVjdXRhYmxlKTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0zMDEsOSArMzAyLDExIEBAIHN0YXRpYyB2b2lk
IGR1bXBMaW5lQ29sdW1uRW50cnkoc2l6ZV90IGluZGV4LCBjb25zdCBVbmxpbmtlZEluc3RydWN0
aW9uU3RyZWFtJiBpCiAKIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmR1bXBFeHByZXNzaW9uUmFu
Z2VJbmZvKCkKIHsKLSAgICBWZWN0b3I8RXhwcmVzc2lvblJhbmdlSW5mbz4mIGV4cHJlc3Npb25J
bmZvID0gbV9leHByZXNzaW9uSW5mbzsKKyAgICBtYXRlcmlhbGl6ZUV4cHJlc3Npb25JbmZvKCk7
CiAKLSAgICBzaXplX3Qgc2l6ZSA9IG1fZXhwcmVzc2lvbkluZm8uc2l6ZSgpOworICAgIFZlY3Rv
cjxFeHByZXNzaW9uUmFuZ2VJbmZvPiYgZXhwcmVzc2lvbkluZm8gPSAqbV9yYXJlRGF0YS0+bV9l
eHByZXNzaW9uSW5mbzsKKworICAgIHNpemVfdCBzaXplID0gZXhwcmVzc2lvbkluZm8uc2l6ZSgp
OwogICAgIGRhdGFMb2dGKCJVbmxpbmtlZENvZGVCbG9jayAlcCBleHByZXNzaW9uUmFuZ2VJbmZv
WyV6dV0ge1xuIiwgdGhpcywgc2l6ZSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyBpKyspIHsKICAgICAgICAgRXhwcmVzc2lvblJhbmdlSW5mbyYgaW5mbyA9IGV4cHJlc3Npb25J
bmZvW2ldOwpAQCAtMzE2LDEyICszMTksODkgQEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6ZHVt
cEV4cHJlc3Npb25SYW5nZUluZm8oKQogfQogI2VuZGlmCiAKK3ZvaWQgVW5saW5rZWRDb2RlQmxv
Y2s6Om1hdGVyaWFsaXplRXhwcmVzc2lvbkluZm8oKQoreworICAgIGNyZWF0ZVJhcmVEYXRhSWZO
ZWNlc3NhcnkoKTsKKyAgICBpZiAobV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mbykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgRXhlY3V0YWJsZUluZm8gZXhlY3V0YWJsZUluZm8obV9uZWVkc0Z1
bGxTY29wZUNoYWluLCBtX3VzZXNFdmFsLCBtX2lzU3RyaWN0TW9kZSwgbV9pc0NvbnN0cnVjdG9y
LCBtX2lzQnVpbHRpbkZ1bmN0aW9uKTsKKyAgICBQYXJzZXJFcnJvciBlcnJvcjsKKyAgICBVbmxp
bmtlZENvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSBudWxscHRyOworCisgICAgaWYgKGNv
ZGVUeXBlKCkgPT0gRXZhbENvZGUpIHsKKyAgICAgICAgUmVmUHRyPEV2YWxOb2RlPiBldmFsTm9k
ZSA9IHBhcnNlPEV2YWxOb2RlPih2bSgpLCBtX21ldGFkYXRhRm9yUmVwYXJzZS5zb3VyY2VDb2Rl
LCBudWxscHRyLCBJZGVudGlmaWVyKCksIG1fbWV0YWRhdGFGb3JSZXBhcnNlLnByb2dyYW1TdHJp
Y3RuZXNzLCBKU1BhcnNlUHJvZ3JhbUNvZGUsIGVycm9yKTsKKyAgICAgICAgaWYgKCFldmFsTm9k
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB1bmxpbmtlZENvZGVCbG9jayA9IFVu
bGlua2VkRXZhbENvZGVCbG9jazo6Y3JlYXRlKHZtKCksIGV4ZWN1dGFibGVJbmZvKTsKKyAgICAg
ICAgdW5saW5rZWRDb2RlQmxvY2stPmNyZWF0ZVJhcmVEYXRhSWZOZWNlc3NhcnkoKS5tX2V4cHJl
c3Npb25JbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8RXhwcmVzc2lvblJhbmdlSW5mbz4+
KCk7CisKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVjb2RlR2VuZXJhdG9yPiBnZW5lcmF0
b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlR2VuZXJhdG9yPigqbV92bSwgZXZhbE5vZGUu
Z2V0KCksIHN0YXRpY19jYXN0PFVubGlua2VkRXZhbENvZGVCbG9jayo+KHVubGlua2VkQ29kZUJs
b2NrKSwgbV9tZXRhZGF0YUZvclJlcGFyc2UuZGVidWdnZXJNb2RlLCBtX21ldGFkYXRhRm9yUmVw
YXJzZS5wcm9maWxlck1vZGUsIEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pOworICAgICAgICBlcnJv
ciA9IGdlbmVyYXRvci0+Z2VuZXJhdGUoKTsKKyAgICAgICAgZXZhbE5vZGUtPmRlc3Ryb3lEYXRh
KCk7CisgICAgfSBlbHNlIGlmIChjb2RlVHlwZSgpID09IEdsb2JhbENvZGUpIHsKKyAgICAgICAg
UmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtTm9kZSA9IHBhcnNlPFByb2dyYW1Ob2RlPih2bSgp
LCBtX21ldGFkYXRhRm9yUmVwYXJzZS5zb3VyY2VDb2RlLCBudWxscHRyLCBJZGVudGlmaWVyKCks
IG1fbWV0YWRhdGFGb3JSZXBhcnNlLnByb2dyYW1TdHJpY3RuZXNzLCBKU1BhcnNlUHJvZ3JhbUNv
ZGUsIGVycm9yKTsKKyAgICAgICAgaWYgKCFwcm9ncmFtTm9kZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICB1bmxpbmtlZENvZGVCbG9jayA9IFVubGlua2VkUHJvZ3JhbUNvZGVCbG9j
azo6Y3JlYXRlKHZtKCksIGV4ZWN1dGFibGVJbmZvKTsKKyAgICAgICAgdW5saW5rZWRDb2RlQmxv
Y2stPmNyZWF0ZVJhcmVEYXRhSWZOZWNlc3NhcnkoKS5tX2V4cHJlc3Npb25JbmZvID0gc3RkOjpt
YWtlX3VuaXF1ZTxWZWN0b3I8RXhwcmVzc2lvblJhbmdlSW5mbz4+KCk7CisKKyAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEJ5dGVjb2RlR2VuZXJhdG9yPiBnZW5lcmF0b3IgPSBzdGQ6Om1ha2VfdW5p
cXVlPEJ5dGVjb2RlR2VuZXJhdG9yPigqbV92bSwgcHJvZ3JhbU5vZGUuZ2V0KCksIHN0YXRpY19j
YXN0PFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayo+KHVubGlua2VkQ29kZUJsb2NrKSwgbV9tZXRh
ZGF0YUZvclJlcGFyc2UuZGVidWdnZXJNb2RlLCBtX21ldGFkYXRhRm9yUmVwYXJzZS5wcm9maWxl
ck1vZGUsIEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pOworICAgICAgICBlcnJvciA9IGdlbmVyYXRv
ci0+Z2VuZXJhdGUoKTsKKyAgICAgICAgcHJvZ3JhbU5vZGUtPmRlc3Ryb3lEYXRhKCk7CisgICAg
fSBlbHNlIGlmIChjb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgeworICAgICAgICBVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG1fbWV0YWRhdGFGb3JSZXBhcnNlLmZ1
bmN0aW9uRXhlY3V0YWJsZTsKKworICAgICAgICBSZWZQdHI8RnVuY3Rpb25Cb2R5Tm9kZT4gYm9k
eU5vZGUgPSBwYXJzZTxGdW5jdGlvbkJvZHlOb2RlPih2bSgpLCBtX21ldGFkYXRhRm9yUmVwYXJz
ZS5zb3VyY2VDb2RlLCBleGVjdXRhYmxlLT5wYXJhbWV0ZXJzKCksIGV4ZWN1dGFibGUtPm5hbWUo
KSwgZXhlY3V0YWJsZS0+dG9TdHJpY3RuZXNzKCksIEpTUGFyc2VGdW5jdGlvbkNvZGUsIGVycm9y
KTsKKyAgICAgICAgaWYgKCFib2R5Tm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBpZiAoZXhlY3V0YWJsZS0+Zm9yY2VVc2VzQXJndW1lbnRzKCkpCisgICAgICAgICAgICBib2R5
Tm9kZS0+c2V0VXNlc0FyZ3VtZW50cygpOworICAgICAgICBib2R5Tm9kZS0+ZmluaXNoUGFyc2lu
ZyhleGVjdXRhYmxlLT5wYXJhbWV0ZXJzKCksIGV4ZWN1dGFibGUtPm5hbWUoKSwgZXhlY3V0YWJs
ZS0+ZnVuY3Rpb25Nb2RlKCkpOworCisgICAgICAgIHVubGlua2VkQ29kZUJsb2NrID0gVW5saW5r
ZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRlKHZtKCksIEZ1bmN0aW9uQ29kZSwgZXhlY3V0YWJs
ZUluZm8pOworICAgICAgICB1bmxpbmtlZENvZGVCbG9jay0+Y3JlYXRlUmFyZURhdGFJZk5lY2Vz
c2FyeSgpLm1fZXhwcmVzc2lvbkluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxFeHByZXNz
aW9uUmFuZ2VJbmZvPj4oKTsKKworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVHZW5l
cmF0b3I+IGdlbmVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVHZW5lcmF0b3I+KCpt
X3ZtLCBib2R5Tm9kZS5nZXQoKSwgc3RhdGljX2Nhc3Q8VW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayo+KHVubGlua2VkQ29kZUJsb2NrKSwgbV9tZXRhZGF0YUZvclJlcGFyc2UuZGVidWdnZXJNb2Rl
LCBtX21ldGFkYXRhRm9yUmVwYXJzZS5wcm9maWxlck1vZGUsIEdlbmVyYXRlRXhwcmVzc2lvbklu
Zm8pOworICAgICAgICBlcnJvciA9IGdlbmVyYXRvci0+Z2VuZXJhdGUoKTsKKyAgICAgICAgYm9k
eU5vZGUtPmRlc3Ryb3lEYXRhKCk7CisgICAgfQorCisgICAgQVNTRVJUKHVubGlua2VkQ29kZUJs
b2NrKTsKKyAgICBBU1NFUlQoZXJyb3IubV90eXBlID09IFBhcnNlckVycm9yOjpFcnJvck5vbmUp
OworCisgICAgbV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mbyA9IHN0ZDo6bW92ZSh1bmxpbmtl
ZENvZGVCbG9jay0+bV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mbyk7CisgICAgbV9yYXJlRGF0
YS0+bV9leHByZXNzaW9uSW5mb0ZhdFBvc2l0aW9ucyA9IHN0ZDo6bW92ZSh1bmxpbmtlZENvZGVC
bG9jay0+bV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mb0ZhdFBvc2l0aW9ucyk7Cit9CisKK3Zv
aWQgVW5saW5rZWRDb2RlQmxvY2s6OnNhdmVNZXRhZGF0YUZvclByb2dyYW1SZXBhcnNlKGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2Zp
bGVyTW9kZSBwcm9maWxlck1vZGUsIEpTUGFyc2VyU3RyaWN0bmVzcyBzdHJpY3RuZXNzKQorewor
ICAgIG1fbWV0YWRhdGFGb3JSZXBhcnNlLnByb2dyYW1TdHJpY3RuZXNzID0gc3RyaWN0bmVzczsK
KyAgICBtX21ldGFkYXRhRm9yUmVwYXJzZS5zb3VyY2VDb2RlID0gc291cmNlQ29kZTsKKyAgICBt
X21ldGFkYXRhRm9yUmVwYXJzZS5kZWJ1Z2dlck1vZGUgPSBkZWJ1Z2dlck1vZGU7CisgICAgbV9t
ZXRhZGF0YUZvclJlcGFyc2UucHJvZmlsZXJNb2RlID0gcHJvZmlsZXJNb2RlOworfQorCit2b2lk
IFVubGlua2VkQ29kZUJsb2NrOjpzYXZlTWV0YWRhdGFGb3JGdW5jdGlvblJlcGFyc2UoY29uc3Qg
U291cmNlQ29kZSYgc291cmNlQ29kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmls
ZXJNb2RlIHByb2ZpbGVyTW9kZSwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUpCit7CisgICAgbV9tZXRhZGF0YUZvclJlcGFyc2UuZnVuY3Rpb25FeGVjdXRhYmxlID0gZXhl
Y3V0YWJsZTsKKyAgICBtX21ldGFkYXRhRm9yUmVwYXJzZS5zb3VyY2VDb2RlID0gc291cmNlQ29k
ZTsKKyAgICBtX21ldGFkYXRhRm9yUmVwYXJzZS5kZWJ1Z2dlck1vZGUgPSBkZWJ1Z2dlck1vZGU7
CisgICAgbV9tZXRhZGF0YUZvclJlcGFyc2UucHJvZmlsZXJNb2RlID0gcHJvZmlsZXJNb2RlOwor
fQorCisKIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2Rl
T2Zmc2V0KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LAogICAgIGludCYgZGl2b3QsIGludCYgc3Rh
cnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1bnNpZ25lZCYgbGluZSwgdW5zaWduZWQmIGNvbHVt
bikKIHsKICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQgPCBpbnN0cnVjdGlvbnMoKS5jb3VudCgp
KTsKIAotICAgIGlmICghbV9leHByZXNzaW9uSW5mby5zaXplKCkpIHsKKyAgICBtYXRlcmlhbGl6
ZUV4cHJlc3Npb25JbmZvKCk7CisKKyAgICBpZiAoIW1fcmFyZURhdGEtPm1fZXhwcmVzc2lvbklu
Zm8tPnNpemUoKSkgewogICAgICAgICBzdGFydE9mZnNldCA9IDA7CiAgICAgICAgIGVuZE9mZnNl
dCA9IDA7CiAgICAgICAgIGRpdm90ID0gMDsKQEAgLTMzMCw3ICs0MTAsNyBAQCB2b2lkIFVubGlu
a2VkQ29kZUJsb2NrOjpleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBi
eXRlY29kZU9mZnNldAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgVmVjdG9yPEV4cHJl
c3Npb25SYW5nZUluZm8+JiBleHByZXNzaW9uSW5mbyA9IG1fZXhwcmVzc2lvbkluZm87CisgICAg
VmVjdG9yPEV4cHJlc3Npb25SYW5nZUluZm8+JiBleHByZXNzaW9uSW5mbyA9ICptX3JhcmVEYXRh
LT5tX2V4cHJlc3Npb25JbmZvOwogCiAgICAgaW50IGxvdyA9IDA7CiAgICAgaW50IGhpZ2ggPSBl
eHByZXNzaW9uSW5mby5zaXplKCk7CkBAIC0zNTUsNiArNDM1LDggQEAgdm9pZCBVbmxpbmtlZENv
ZGVCbG9jazo6ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNv
ZGVPZmZzZXQKIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFkZEV4cHJlc3Npb25JbmZvKHVuc2ln
bmVkIGluc3RydWN0aW9uT2Zmc2V0LAogICAgIGludCBkaXZvdCwgaW50IHN0YXJ0T2Zmc2V0LCBp
bnQgZW5kT2Zmc2V0LCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pCiB7CisgICAgQVNT
RVJUKG1fcmFyZURhdGEpOworICAgIEFTU0VSVChtX3JhcmVEYXRhLT5tX2V4cHJlc3Npb25JbmZv
KTsKICAgICBpZiAoZGl2b3QgPiBFeHByZXNzaW9uUmFuZ2VJbmZvOjpNYXhEaXZvdCkgewogICAg
ICAgICAvLyBPdmVyZmxvdyBoYXMgb2NjdXJyZWQsIHdlIGNhbiBvbmx5IGdpdmUgbGluZSBudW1i
ZXIgaW5mbyBmb3IgZXJyb3JzIGZvciB0aGlzIHJlZ2lvbgogICAgICAgICBkaXZvdCA9IDA7CkBA
IC00MDMsNyArNDg1LDcgQEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6YWRkRXhwcmVzc2lvbklu
Zm8odW5zaWduZWQgaW5zdHJ1Y3Rpb25PZmZzZXQsCiAgICAgfQogICAgIH0gLy8gc3dpdGNoCiAK
LSAgICBtX2V4cHJlc3Npb25JbmZvLmFwcGVuZChpbmZvKTsKKyAgICBtX3JhcmVEYXRhLT5tX2V4
cHJlc3Npb25JbmZvLT5hcHBlbmQoaW5mbyk7CiB9CiAKIHZvaWQgVW5saW5rZWRQcm9ncmFtQ29k
ZUJsb2NrOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
CkBAIC00NTIsNSArNTM0LDExIEBAIGNvbnN0IFVubGlua2VkSW5zdHJ1Y3Rpb25TdHJlYW0mIFVu
bGlua2VkQ29kZUJsb2NrOjppbnN0cnVjdGlvbnMoKSBjb25zdAogICAgIHJldHVybiAqbV91bmxp
bmtlZEluc3RydWN0aW9uczsKIH0KIAorYm9vbCBVbmxpbmtlZENvZGVCbG9jazo6aGFzRXhwcmVz
c2lvbkluZm8oKQoreworICAgIG1hdGVyaWFsaXplRXhwcmVzc2lvbkluZm8oKTsKKyAgICByZXR1
cm4gbV9yYXJlRGF0YS0+bV9leHByZXNzaW9uSW5mby0+c2l6ZSgpOworfQorCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKaW5k
ZXggNjllMmIxYy4uZWQ2OWM0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKQEAgLTI3Myw3ICsyNzMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhZGRFeHByZXNzaW9uSW5mbyh1bnNpZ25lZCBpbnN0cnVjdGlvbk9mZnNldCwgaW50
IGRpdm90LAogICAgICAgICBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIHVuc2lnbmVk
IGxpbmUsIHVuc2lnbmVkIGNvbHVtbik7CiAKLSAgICBib29sIGhhc0V4cHJlc3Npb25JbmZvKCkg
eyByZXR1cm4gbV9leHByZXNzaW9uSW5mby5zaXplKCk7IH0KKyAgICBib29sIGhhc0V4cHJlc3Np
b25JbmZvKCk7CiAKICAgICAvLyBTcGVjaWFsIHJlZ2lzdGVycwogICAgIHZvaWQgc2V0VGhpc1Jl
Z2lzdGVyKFZpcnR1YWxSZWdpc3RlciB0aGlzUmVnaXN0ZXIpIHsgbV90aGlzUmVnaXN0ZXIgPSB0
aGlzUmVnaXN0ZXI7IH0KQEAgLTMwOCw2ICszMDgsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIFJl
Z0V4cCogcmVnZXhwKGludCBpbmRleCkgY29uc3QgeyBBU1NFUlQobV9yYXJlRGF0YSk7IHJldHVy
biBtX3JhcmVEYXRhLT5tX3JlZ2V4cHNbaW5kZXhdLmdldCgpOyB9CiAKKyAgICB2b2lkIHNhdmVN
ZXRhZGF0YUZvclByb2dyYW1SZXBhcnNlKGNvbnN0IFNvdXJjZUNvZGUmLCBEZWJ1Z2dlck1vZGUs
IFByb2ZpbGVyTW9kZSwgSlNQYXJzZXJTdHJpY3RuZXNzKTsKKyAgICB2b2lkIHNhdmVNZXRhZGF0
YUZvckZ1bmN0aW9uUmVwYXJzZShjb25zdCBTb3VyY2VDb2RlJiwgRGVidWdnZXJNb2RlLCBQcm9m
aWxlck1vZGUsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKik7CisKICAgICAvLyBDb25zdGFu
dCBQb29scwogCiAgICAgc2l6ZV90IG51bWJlck9mSWRlbnRpZmllcnMoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXJzLnNpemUoKTsgfQpAQCAtMzQ4LDcgKzM1MSw2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9mdW5jdGlvbkRlY2xzLnNocmlua1RvRml0KCk7CiAgICAgICAgIG1fZnVuY3Rpb25F
eHBycy5zaHJpbmtUb0ZpdCgpOwogICAgICAgICBtX3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25z
LnNocmlua1RvRml0KCk7Ci0gICAgICAgIG1fZXhwcmVzc2lvbkluZm8uc2hyaW5rVG9GaXQoKTsK
IAogI2lmIEVOQUJMRShCWVRFQ09ERV9DT01NRU5UUykKICAgICAgICAgbV9ieXRlY29kZUNvbW1l
bnRzLnNocmlua1RvRml0KCk7CkBAIC00OTcsMTIgKzQ5OSw3IEBAIHByb3RlY3RlZDoKICAgICB9
CiAKIHByaXZhdGU6Ci0KLSAgICB2b2lkIGNyZWF0ZVJhcmVEYXRhSWZOZWNlc3NhcnkoKQotICAg
IHsKLSAgICAgICAgaWYgKCFtX3JhcmVEYXRhKQotICAgICAgICAgICAgbV9yYXJlRGF0YSA9IGFk
b3B0UHRyKG5ldyBSYXJlRGF0YSk7Ci0gICAgfQorICAgIHZvaWQgbWF0ZXJpYWxpemVFeHByZXNz
aW9uSW5mbygpOwogCiAgICAgdm9pZCBnZXRMaW5lQW5kQ29sdW1uKEV4cHJlc3Npb25SYW5nZUlu
Zm8mLCB1bnNpZ25lZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbik7CiAKQEAgLTU3MSwxMSArNTY4
LDI5IEBAIHB1YmxpYzoKICAgICAgICAgVmVjdG9yPFVubGlua2VkU3RyaW5nSnVtcFRhYmxlPiBt
X3N0cmluZ1N3aXRjaEp1bXBUYWJsZXM7CiAKICAgICAgICAgVmVjdG9yPEV4cHJlc3Npb25SYW5n
ZUluZm86OkZhdFBvc2l0aW9uPiBtX2V4cHJlc3Npb25JbmZvRmF0UG9zaXRpb25zOworCisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8RXhwcmVzc2lvblJhbmdlSW5mbz4+IG1fZXhwcmVz
c2lvbkluZm87CiAgICAgfTsKIAogcHJpdmF0ZToKKyAgICBSYXJlRGF0YSYgY3JlYXRlUmFyZURh
dGFJZk5lY2Vzc2FyeSgpCisgICAgeworICAgICAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAg
ICAgICBtX3JhcmVEYXRhID0gYWRvcHRQdHIobmV3IFJhcmVEYXRhKTsKKyAgICAgICAgcmV0dXJu
ICptX3JhcmVEYXRhOworICAgIH0KKwogICAgIE93blB0cjxSYXJlRGF0YT4gbV9yYXJlRGF0YTsK
LSAgICBWZWN0b3I8RXhwcmVzc2lvblJhbmdlSW5mbz4gbV9leHByZXNzaW9uSW5mbzsKKworICAg
IHN0cnVjdCB7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGU7CisgICAgICAgICAgICBKU1BhcnNlclN0cmlj
dG5lc3MgcHJvZ3JhbVN0cmljdG5lc3M7CisgICAgICAgIH07CisgICAgICAgIFNvdXJjZUNvZGUg
c291cmNlQ29kZTsKKyAgICAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZTsKKyAgICAgICAg
UHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZTsKKyAgICB9IG1fbWV0YWRhdGFGb3JSZXBhcnNlOwog
CiBwcm90ZWN0ZWQ6CiAKQEAgLTYwNCw2ICs2MTksOCBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBVbmxp
bmtlZFByb2dyYW1Db2RlQmxvY2sgOiBwdWJsaWMgVW5saW5rZWRHbG9iYWxDb2RlQmxvY2sgewog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ29kZUNhY2hlOworICAgIGZyaWVuZCBjbGFzcyBV
bmxpbmtlZENvZGVCbG9jazsKKwogICAgIHN0YXRpYyBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sq
IGNyZWF0ZShWTSogdm0sIGNvbnN0IEV4ZWN1dGFibGVJbmZvJiBpbmZvKQogICAgIHsKICAgICAg
ICAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxs
b2NhdGVDZWxsPFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jaz4odm0tPmhlYXApKSBVbmxpbmtlZFBy
b2dyYW1Db2RlQmxvY2sodm0sIHZtLT51bmxpbmtlZFByb2dyYW1Db2RlQmxvY2tTdHJ1Y3R1cmUu
Z2V0KCksIGluZm8pOwpAQCAtNjU2LDYgKzY3Myw3IEBAIHB1YmxpYzoKIGNsYXNzIFVubGlua2Vk
RXZhbENvZGVCbG9jayA6IHB1YmxpYyBVbmxpbmtlZEdsb2JhbENvZGVCbG9jayB7CiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBDb2RlQ2FjaGU7CisgICAgZnJpZW5kIGNsYXNzIFVubGlua2Vk
Q29kZUJsb2NrOwogCiAgICAgc3RhdGljIFVubGlua2VkRXZhbENvZGVCbG9jayogY3JlYXRlKFZN
KiB2bSwgY29uc3QgRXhlY3V0YWJsZUluZm8mIGluZm8pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApp
bmRleCBiZjNkODQwLi5kYmVhZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMTU3LDcgKzE1Nyw3
IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OnByZXNlcnZlTGFzdFZhcigpCiAgICAgICAgIG1f
bGFzdFZhciA9ICZtX2NhbGxlZVJlZ2lzdGVycy5sYXN0KCk7CiB9CiAKLUJ5dGVjb2RlR2VuZXJh
dG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIFByb2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwg
VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dl
ck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0
ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2Vk
UHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQ
cm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBTaG91bGRHZW5lcmF0ZUV4cHJlc3Npb25JbmZvIHNo
b3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pCiAgICAgOiBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tz
KE9wdGlvbnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBkZWJ1Z2dlck1v
ZGUgPT0gRGVidWdnZXJPbikKICAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcyhPcHRpb25z
Ojpmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJNb2RlID09IFBy
b2ZpbGVyT24pCiAgICAgLCBtX3N5bWJvbFRhYmxlKDApCkBAIC0xODAsNiArMTgwLDcgQEAgQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgUHJvZ3JhbU5vZGUqIHBy
b2dyYW1Ob2RlLCBVbmxpbmtlZFAKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2xhc3RPcGNvZGVQ
b3NpdGlvbigwKQogI2VuZGlmCisgICAgLCBtX3Nob3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8o
c2hvdWxkR2VuZXJhdGVFeHByZXNzaW9uSW5mbykKICAgICAsIG1fdXNlc0V4Y2VwdGlvbnMoZmFs
c2UpCiAgICAgLCBtX2V4cHJlc3Npb25Ub29EZWVwKGZhbHNlKQogICAgICwgbV9pc0J1aWx0aW5G
dW5jdGlvbihmYWxzZSkKQEAgLTIwMiw3ICsyMDMsNyBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0
ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2Vk
UAogCiB9CiAKLUJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1
bmN0aW9uQm9keU5vZGUqIGZ1bmN0aW9uQm9keSwgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayog
Y29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmls
ZXJNb2RlKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVu
Y3Rpb25Cb2R5Tm9kZSogZnVuY3Rpb25Cb2R5LCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxl
ck1vZGUsIFNob3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8gc2hvdWxkR2VuZXJhdGVFeHByZXNz
aW9uSW5mbykKICAgICA6IG1fc2hvdWxkRW1pdERlYnVnSG9va3MoT3B0aW9uczo6Zm9yY2VEZWJ1
Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRlYnVnZ2VyTW9kZSA9PSBEZWJ1Z2dlck9uKQog
ICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKE9wdGlvbnM6OmZvcmNlUHJvZmlsZXJCeXRl
Y29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1vZGUgPT0gUHJvZmlsZXJPbikKICAgICAsIG1f
c3ltYm9sVGFibGUoY29kZUJsb2NrLT5zeW1ib2xUYWJsZSgpKQpAQCAtMjI0LDYgKzIyNSw3IEBA
IEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1bmN0aW9uQm9k
eU5vZGUqIGZ1bmN0aW9uQm9keSwgVW5sCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9sYXN0T3Bj
b2RlUG9zaXRpb24oMCkKICNlbmRpZgorICAgICwgbV9zaG91bGRHZW5lcmF0ZUV4cHJlc3Npb25J
bmZvKHNob3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pCiAgICAgLCBtX3VzZXNFeGNlcHRpb25z
KGZhbHNlKQogICAgICwgbV9leHByZXNzaW9uVG9vRGVlcChmYWxzZSkKICAgICAsIG1faXNCdWls
dGluRnVuY3Rpb24oY29kZUJsb2NrLT5pc0J1aWx0aW5GdW5jdGlvbigpKQpAQCAtNDEzLDcgKzQx
NSw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1bmN0
aW9uQm9keU5vZGUqIGZ1bmN0aW9uQm9keSwgVW5sCiAgICAgfQogfQogCi1CeXRlY29kZUdlbmVy
YXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBFdmFsTm9kZSogZXZhbE5vZGUsIFVubGlu
a2VkRXZhbENvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQ
cm9maWxlck1vZGUgcHJvZmlsZXJNb2RlKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2Vu
ZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sq
IGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2Zp
bGVyTW9kZSwgU2hvdWxkR2VuZXJhdGVFeHByZXNzaW9uSW5mbyBzaG91bGRHZW5lcmF0ZUV4cHJl
c3Npb25JbmZvKQogICAgIDogbV9zaG91bGRFbWl0RGVidWdIb29rcyhPcHRpb25zOjpmb3JjZURl
YnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT24p
CiAgICAgLCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0aW9uczo6Zm9yY2VQcm9maWxlckJ5
dGVjb2RlR2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9PSBQcm9maWxlck9uKQogICAgICwg
bV9zeW1ib2xUYWJsZShjb2RlQmxvY2stPnN5bWJvbFRhYmxlKCkpCkBAIC00MzYsNiArNDM4LDcg
QEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUq
IGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2QKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX2xhc3RP
cGNvZGVQb3NpdGlvbigwKQogI2VuZGlmCisgICAgLCBtX3Nob3VsZEdlbmVyYXRlRXhwcmVzc2lv
bkluZm8oc2hvdWxkR2VuZXJhdGVFeHByZXNzaW9uSW5mbykKICAgICAsIG1fdXNlc0V4Y2VwdGlv
bnMoZmFsc2UpCiAgICAgLCBtX2V4cHJlc3Npb25Ub29EZWVwKGZhbHNlKQogICAgICwgbV9pc0J1
aWx0aW5GdW5jdGlvbihmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCA4ZTBiODZkLi4yNTdiMzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oCkBAIC0xNTUsMTUgKzE1NSwyMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgVHJ5RGF0YSogdHJ5RGF0YTsKICAgICB9OwogCisgICAgZW51bSBTaG91bGRHZW5lcmF0ZUV4
cHJlc3Npb25JbmZvIHsKKyAgICAgICAgRG9Ob3RHZW5lcmF0ZUV4cHJlc3Npb25JbmZvID0gMCwK
KyAgICAgICAgR2VuZXJhdGVFeHByZXNzaW9uSW5mbworICAgIH07CisKICAgICBjbGFzcyBCeXRl
Y29kZUdlbmVyYXRvciB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1
YmxpYzoKICAgICAgICAgdHlwZWRlZiBEZWNsYXJhdGlvblN0YWNrczo6VmFyU3RhY2sgVmFyU3Rh
Y2s7CiAgICAgICAgIHR5cGVkZWYgRGVjbGFyYXRpb25TdGFja3M6OkZ1bmN0aW9uU3RhY2sgRnVu
Y3Rpb25TdGFjazsKIAotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIFByb2dyYW1Ob2Rl
KiwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUp
OwotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEZ1bmN0aW9uQm9keU5vZGUqLCBVbmxp
bmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUpOwotICAg
ICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEV2YWxOb2RlKiwgVW5saW5rZWRFdmFsQ29kZUJs
b2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUpOworICAgICAgICBCeXRlY29kZUdlbmVy
YXRvcihWTSYsIFByb2dyYW1Ob2RlKiwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiwgRGVidWdn
ZXJNb2RlLCBQcm9maWxlck1vZGUsIFNob3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pOworICAg
ICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEZ1bmN0aW9uQm9keU5vZGUqLCBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIFNob3VsZEdlbmVy
YXRlRXhwcmVzc2lvbkluZm8pOworICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEV2YWxO
b2RlKiwgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUs
IFNob3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pOwogCiAgICAgICAgIH5CeXRlY29kZUdlbmVy
YXRvcigpOwogICAgICAgICAKQEAgLTI4NSw3ICsyOTAsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIH0KIAogICAgICAgICB2b2lkIGVtaXRFeHByZXNzaW9uSW5mbyhjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCi0gICAgICAgIHsgICAgICAgICAgICAKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKCFtX3Nob3VsZEdlbmVyYXRlRXhwcmVzc2lvbkluZm8pCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgICAgICBBU1NFUlQoZGl2b3Qub2Zmc2V0ID49
IGRpdm90U3RhcnQub2Zmc2V0KTsKICAgICAgICAgICAgIEFTU0VSVChkaXZvdEVuZC5vZmZzZXQg
Pj0gZGl2b3Qub2Zmc2V0KTsKIApAQCAtNjc5LDYgKzY4Nyw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBzaXplX3QgbV9sYXN0T3Bjb2RlUG9zaXRpb247CiAjZW5kaWYKIAorICAgICAgICBT
aG91bGRHZW5lcmF0ZUV4cHJlc3Npb25JbmZvIG1fc2hvdWxkR2VuZXJhdGVFeHByZXNzaW9uSW5m
bzsKKwogICAgICAgICBib29sIG1fdXNlc0V4Y2VwdGlvbnM7CiAgICAgICAgIGJvb2wgbV9leHBy
ZXNzaW9uVG9vRGVlcDsKICAgICAgICAgYm9vbCBtX2lzQnVpbHRpbkZ1bmN0aW9uOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKaW5kZXggNmRlMTA0NC4uNmE3
NGM4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCkBA
IC0xMDcsNyArMTA3LDcgQEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEds
b2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGUKICAgICBVbmxpbmtlZENv
ZGVCbG9ja1R5cGUqIHVubGlua2VkQ29kZUJsb2NrID0gVW5saW5rZWRDb2RlQmxvY2tUeXBlOjpj
cmVhdGUoJnZtLCBleGVjdXRhYmxlLT5leGVjdXRhYmxlSW5mbygpKTsKICAgICB1bmxpbmtlZENv
ZGVCbG9jay0+cmVjb3JkUGFyc2Uocm9vdE5vZGUtPmZlYXR1cmVzKCksIHJvb3ROb2RlLT5oYXND
YXB0dXJlZFZhcmlhYmxlcygpLCByb290Tm9kZS0+bGluZU5vKCkgLSBzb3VyY2UuZmlyc3RMaW5l
KCksIGxpbmVDb3VudCwgdW5saW5rZWRFbmRDb2x1bW4pOwogCi0gICAgT3duUHRyPEJ5dGVjb2Rl
R2VuZXJhdG9yPiBnZW5lcmF0b3IoYWRvcHRQdHIobmV3IEJ5dGVjb2RlR2VuZXJhdG9yKHZtLCBy
b290Tm9kZS5nZXQoKSwgdW5saW5rZWRDb2RlQmxvY2ssIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJN
b2RlKSkpOworICAgIGF1dG8gZ2VuZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxCeXRlY29kZUdl
bmVyYXRvcj4odm0sIHJvb3ROb2RlLmdldCgpLCB1bmxpbmtlZENvZGVCbG9jaywgZGVidWdnZXJN
b2RlLCBwcm9maWxlck1vZGUsIERvTm90R2VuZXJhdGVFeHByZXNzaW9uSW5mbyk7CiAgICAgZXJy
b3IgPSBnZW5lcmF0b3ItPmdlbmVyYXRlKCk7CiAgICAgcm9vdE5vZGUtPmRlc3Ryb3lEYXRhKCk7
CiAgICAgaWYgKGVycm9yLm1fdHlwZSAhPSBQYXJzZXJFcnJvcjo6RXJyb3JOb25lKSB7CkBAIC0x
MTUsNiArMTE1LDggQEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEdsb2Jh
bENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGUKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCisgICAgdW5saW5rZWRDb2RlQmxvY2stPnNhdmVNZXRhZGF0YUZvclByb2dyYW1S
ZXBhcnNlKHNvdXJjZSwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIHN0cmljdG5lc3MpOwor
CiAgICAgaWYgKCFjYW5DYWNoZSkgewogICAgICAgICBtX3NvdXJjZUNvZGUucmVtb3ZlKGFkZFJl
c3VsdC5pdGVyYXRvcik7CiAgICAgICAgIHJldHVybiB1bmxpbmtlZENvZGVCbG9jazsK
</data>
<flag name="review"
          id="250109"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>