<?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>74458</bug_id>
          
          <creation_ts>2011-12-13 15:39:45 -0800</creation_ts>
          <short_desc>Expanding context is broken for prepare-ChangeLog in the code review tool.</short_desc>
          <delta_ts>2011-12-13 16:07:46 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>520424</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-13 15:39:45 -0800</bug_when>
    <thetext>Expanding context is broken for prepare-ChangeLog in the code review tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520430</commentid>
    <comment_count>1</comment_count>
      <attachid>119099</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-13 15:41:13 -0800</bug_when>
    <thetext>Created attachment 119099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520456</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-13 16:07:46 -0800</bug_when>
    <thetext>Committed r102719: &lt;http://trac.webkit.org/changeset/102719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119099</attachid>
            <date>2011-12-13 15:41:13 -0800</date>
            <delta_ts>2011-12-13 15:53:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74458-20111213154112.patch</filename>
            <type>text/plain</type>
            <size>19158</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNzExCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA3MGU4N2M2YzM1OWFhY2I3OTAxYzUwOGJlYjJhODA0NGM2OGQ2OWEyLi45OGNlYWVmMGFk
OGZiY2YzNzlkZGM2ZTllN2IyOTAzNThkNzRkMzRhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9idWdz
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMS0xMi0xMyAgT2phbiBWYWZhaSAgPG9qYW5AY2hy
b21pdW0ub3JnPgogCisgICAgICAgIEV4cGFuZGluZyBjb250ZXh0IGlzIGJyb2tlbiBmb3IgcHJl
cGFyZS1DaGFuZ2VMb2cgaW4gdGhlIGNvZGUgcmV2aWV3IHRvb2wuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29kZS1yZXZpZXctdGVzdC5odG1sOgor
ICAgICAgICAtTW92ZWQgYWxsIHRoZSB0ZXN0cyBpbnRvIHRlc3QqIGZ1bmN0aW9ucy4KKyAgICAg
ICAgLUF1dG9tYXRlZCBjYWxsaW5nIGFsbCB0ZXN0KiBmdW5jdGlvbnMuCisgICAgICAgIC1BZGRl
ZCB0ZXN0SXNDaGFuZ2VMb2cuCisgICAgICAgICogY29kZS1yZXZpZXcuanM6CisgICAgICAgIE1h
ZGUgdGhlIGNoZWNrIGZvciB3aGV0aGVyIGl0J3MgYSBDaGFuZ2VMb2cgZmlsZSBtb3JlIHJvYnVz
dC4KKworMjAxMS0xMi0xMyAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIEZpeCBidWcgaW4gdGhlIGNvZGUgcmV2aWV3IHRvb2wgd2hlbiByZWFkZGluZyBhIGRpc2Nh
cmRlZCBjb21tZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NDQ1MAogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvY29kZS1y
ZXZpZXctdGVzdC5odG1sIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL2NvZGUtcmV2aWV3LXRl
c3QuaHRtbAppbmRleCBlNDZjZTY0ZjZlMWQxYzE2Yzg5ZWViMmYyNmJlMzc2OTNiMGZjNzJlLi5h
MjkwNzczMGU1MGIwNzU2MDVmODVkNWI0MGMyMTE0YzA3YTczMWNlIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9idWdzLndlYmtpdC5vcmcvY29kZS1yZXZpZXctdGVzdC5odG1sCisrKyBiL1dlYnNpdGVz
L2J1Z3Mud2Via2l0Lm9yZy9jb2RlLXJldmlldy10ZXN0Lmh0bWwKQEAgLTIxLDU3ICsyMSw2IEBA
IGZ1bmN0aW9uIGluaGVyaXRzKGNoaWxkQ29uc3RydWN0b3IsIHBhcmVudENvbnN0cnVjdG9yKSB7
CiAgIGNoaWxkQ29uc3RydWN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY2hpbGRDb25zdHJ1
Y3RvcjsKIH0KIAotZnVuY3Rpb24gTW9ja0xvY2FsU3RvcmFnZSgpIHsKLSAgICB0aGlzLmxvY2Fs
U3RvcmFnZVN0b3JlID0ge307Ci0gICAgdGhpcy5sb2cgPSBbXTsKLQotICAgIHRoaXMuZ2V0SXRl
bSA9IGZ1bmN0aW9uKGtleSkgewotICAgICAgICB0aGlzLmxvZy5wdXNoKCdnZXRJdGVtOicgKyBr
ZXkpOwotICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2VTdG9yZVtrZXldOwotICAgIH07
Ci0KLSAgICB0aGlzLnNldEl0ZW0gPSBmdW5jdGlvbihrZXksIHZhbHVlKSB7Ci0gICAgICAgIC8v
IEZvciB0ZXN0aW5nIHNha2UsIGNvbnNpZGVyIGhhdmluZyBtb3JlIHRoYW4gMiBpdGVtcyB0byBl
eGNlZWQgdGhlIHN0b3JhZ2UgcXVvdGEuCi0gICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmxv
Y2FsU3RvcmFnZVN0b3JlKS5sZW5ndGggPiAyKSB7Ci0gICAgICAgICAgICB0aGlzLmxvZy5wdXNo
KCdRdW90YUV4Y2VlZGVkIG9uIHNldEl0ZW06JyArIGtleSArICcsJyArIHZhbHVlKTsKLSAgICAg
ICAgICAgIHRocm93ICJRdW90YUV4Y2VlZGVkIjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLmxv
Zy5wdXNoKCdzZXRJdGVtOicgKyBrZXkgKyAnLCcgKyB2YWx1ZSk7Ci0gICAgICAgIHRoaXMubG9j
YWxTdG9yYWdlU3RvcmVba2V5XSA9IHZhbHVlOwotICAgIH07Ci0KLSAgICB0aGlzLnJlbW92ZUl0
ZW0gPSBmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgdGhpcy5sb2cucHVzaCgncmVtb3ZlSXRlbTon
ICsga2V5KTsKLSAgICAgICAgZGVsZXRlIHRoaXMubG9jYWxTdG9yYWdlU3RvcmVba2V5XTsKLSAg
ICB9OwotCi0gICAgdGhpcy5sb2dfc3RyaW5nID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVy
biB0aGlzLmxvZy5qb2luKCdcbicpOwotICAgIH07Ci0KLSAgICB0aGlzLmtleSA9IGZ1bmN0aW9u
KGkpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMubG9jYWxTdG9yYWdlU3RvcmUp
W2ldOwotICAgIH07Ci0KLSAgICB0aGlzLl9fZGVmaW5lR2V0dGVyX18oJ2xlbmd0aCcsIGZ1bmN0
aW9uKCkgewotICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5sb2NhbFN0b3JhZ2VTdG9y
ZSkubGVuZ3RoOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBNb2NrRHJhZnRDb21tZW50U2F2ZXIo
YXR0YWNobWVudF9pZCwgb3B0X2xvY2FsU3RvcmFnZSkgewotICAgIERyYWZ0Q29tbWVudFNhdmVy
LmNhbGwodGhpcywgYXR0YWNobWVudF9pZCwgb3B0X2xvY2FsU3RvcmFnZSk7Ci19Ci0KLWluaGVy
aXRzKE1vY2tEcmFmdENvbW1lbnRTYXZlciwgRHJhZnRDb21tZW50U2F2ZXIpCi0KLU1vY2tEcmFm
dENvbW1lbnRTYXZlci5wcm90b3R5cGUuX2pzb24gPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4g
IntNT0NLIEpTT059IjsKLX0KLQotTW9ja0RyYWZ0Q29tbWVudFNhdmVyLnByb3RvdHlwZS5fc2hv
dWxkX3JlbW92ZV9jb21tZW50cyA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIGZ1bmN0aW9uIGxvZyhtc2cpIHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnb3V0cHV0JykuaW5uZXJIVE1MICs9IG1zZyArICdcblxuJzsKIH0KQEAgLTkwLDk3ICszOSwx
NTEgQEAgZnVuY3Rpb24gQVNTRVJUX0VRVUFMKGFjdHVhbCwgZXhwZWN0ZWQpIHsKICAgICAgICAg
bG9nKCdGQUlMOlxuZ290OlxuJyArIGFjdHVhbCArICdcbmV4cGVjdGVkOlxuJyArIGV4cGVjdGVk
ICsgJycpOwogfQogCi12YXIgbGlua3MgPSB0cmFjTGlua3MoJ2Zvby9iYXIvYmF6LmNwcCcsICcn
KTsKLUFTU0VSVF9FUVVBTCgkKGxpbmtzKS5hdHRyKCdocmVmJyksICdodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2xvZy90cnVuay9mb28vYmFyL2Jhei5oJyk7Ci0KLXZhciBsaW5rcyA9IHRyYWNMaW5r
cygnZm9vL2Jhci5jcHAvcXV4Lm1tJywgJycpOwotQVNTRVJUX0VRVUFMKCQobGlua3MpLmF0dHIo
J2hyZWYnKSwgJ2h0dHA6Ly90cmFjLndlYmtpdC5vcmcvbG9nL3RydW5rL2Zvby9iYXIuY3BwL3F1
eC5oJyk7Ci0KLS8vIEJhc2ljIHNldEl0ZW0uCi12YXIgbHMgPSBuZXcgTW9ja0xvY2FsU3RvcmFn
ZSgpOwotbmV3IE1vY2tEcmFmdENvbW1lbnRTYXZlcignMTIzNCcsIGxzKS5zYXZlKCk7Ci1BU1NF
UlRfRVFVQUwobHMubG9nX3N0cmluZygpLCAnc2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0
YWNobWVudC0xMjM0LHtNT0NLIEpTT059Jyk7Ci0KLS8vIEV4Y2VlZCBxdW90YSwgYnV0IHN1Y2Nl
ZWQgYWZ0ZXIgZXJhc2luZyBvbGQgcmV2aWV3cy4KLXZhciBscyA9IG5ldyBNb2NrTG9jYWxTdG9y
YWdlKCk7Ci1scy5sb2NhbFN0b3JhZ2VTdG9yZSA9IHsKLSAgICAnZHJhZnQtY29tbWVudHMtZm9y
LWF0dGFjaG1lbnQtMSc6ICd7ImJvcm4tb24iOiAxMDAsICJjb21tZW50cyI6W119JywKLSAgICAn
ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMic6ICd7ImJvcm4tb24iOiAxMDAsICJjb21t
ZW50cyI6W119JywKLSAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMyc6ICd7ImJv
cm4tb24iOiAxMDAsICJjb21tZW50cyI6W119JywKLSAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0
dGFjaG1lbnQtNCc6ICd7ImJvcm4tb24iOiAnICsgKERhdGUubm93KCkgLSAxMDApICsgJywgImNv
bW1lbnRzIjpbXX0nCi19OwotbmV3IE1vY2tEcmFmdENvbW1lbnRTYXZlcignMTIzNCcsIGxzKS5z
YXZlKCk7Ci1BU1NFUlRfRVFVQUwobHMubG9nX3N0cmluZygpLCAnUXVvdGFFeGNlZWRlZCBvbiBz
ZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTEyMzQse01PQ0sgSlNPTn1cbmdl
dEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMVxuZ2V0SXRlbTpkcmFmdC1jb21t
ZW50cy1mb3ItYXR0YWNobWVudC0yXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2ht
ZW50LTNcbmdldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtNFxucmVtb3ZlSXRl
bTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xXG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1l
bnRzLWZvci1hdHRhY2htZW50LTJcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFj
aG1lbnQtM1xuc2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xMjM0LHtNT0NL
IEpTT059Jyk7Ci0KLS8vIEV4Y2VlZCBxdW90YSBhZnRlciBlcmFzaW5nIG9sZCByZXZpZXdzIGFu
ZCBmYWlsIGFmdGVyIHByb21wdC4KLXZhciBscyA9IG5ldyBNb2NrTG9jYWxTdG9yYWdlKCk7Ci1s
cy5sb2NhbFN0b3JhZ2VTdG9yZSA9IHsKLSAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1l
bnQtMSc6ICd7ImJvcm4tb24iOiAxMDAsICJjb21tZW50cyI6W119JywKLSAgICAnZHJhZnQtY29t
bWVudHMtZm9yLWF0dGFjaG1lbnQtMic6ICd7ImJvcm4tb24iOiAnICsgKERhdGUubm93KCkgLSAx
MDApICsgJywgImNvbW1lbnRzIjpbXX0nLAotICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNo
bWVudC0zJzogJ3siYm9ybi1vbiI6ICcgKyAoRGF0ZS5ub3coKSAtIDEwMCkgKyAnLCAiY29tbWVu
dHMiOltdfScsCi0gICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTQnOiAneyJib3Ju
LW9uIjogJyArIChEYXRlLm5vdygpIC0gMTAwKSArICcsICJjb21tZW50cyI6W119JwotfTsKLXZh
ciBtb2NrRHJhZnRTYXZlciA9IG5ldyBNb2NrRHJhZnRDb21tZW50U2F2ZXIoJzEyMzQnLCBscyk7
Ci1tb2NrRHJhZnRTYXZlci5zYXZlKCk7Ci0vLyBTZWNvbmQgc2F2ZSB0byBlbnN1cmUgdGhhdCB3
ZSBzdG9wIHRyeWluZyB0byBzYXZlIHdoZW4gd2UgZmFpbCB0aGUgcHJvbXB0LgotbW9ja0RyYWZ0
U2F2ZXIuc2F2ZSgpOwotQVNTRVJUX0VRVUFMKGxzLmxvZ19zdHJpbmcoKSwgJ1F1b3RhRXhjZWVk
ZWQgb24gc2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xMjM0LHtNT0NLIEpT
T059XG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTFcbmdldEl0ZW06ZHJh
ZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMlxuZ2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3It
YXR0YWNobWVudC0zXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTRcbnJl
bW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMVxuUXVvdGFFeGNlZWRlZCBv
biBzZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTEyMzQse01PQ0sgSlNPTn0n
KTsKLQotLy8gRXhjZWVkIHF1b3RhIGFmdGVyIGVyYXNpbmcgb2xkIHJldmlld3MsIGJ1dCBzdWNj
ZWVkIGFmdGVyIHByb21wdC4KLXZhciBscyA9IG5ldyBNb2NrTG9jYWxTdG9yYWdlKCk7Ci1scy5s
b2NhbFN0b3JhZ2VTdG9yZSA9IHsKLSAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQt
MSc6ICd7ImJvcm4tb24iOiAxMDAsICJjb21tZW50cyI6W119JywKLSAgICAnZHJhZnQtY29tbWVu
dHMtZm9yLWF0dGFjaG1lbnQtMic6ICd7ImJvcm4tb24iOiAnICsgKERhdGUubm93KCkgLSAxMDAp
ICsgJywgImNvbW1lbnRzIjpbXX0nLAotICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVu
dC0zJzogJ3siYm9ybi1vbiI6ICcgKyAoRGF0ZS5ub3coKSAtIDEwMCkgKyAnLCAiY29tbWVudHMi
OltdfScsCi0gICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTQnOiAneyJib3JuLW9u
IjogJyArIChEYXRlLm5vdygpIC0gMTAwKSArICcsICJjb21tZW50cyI6W119JwotfTsKLXZhciBt
b2NrRHJhZnRTYXZlciA9IG5ldyBNb2NrRHJhZnRDb21tZW50U2F2ZXIoJzEyMzQnLCBscyk7Ci1t
b2NrRHJhZnRTYXZlci5fc2hvdWxkX3JlbW92ZV9jb21tZW50cyA9IGZ1bmN0aW9uKCkgeyByZXR1
cm4gdHJ1ZTsgfTsKLW1vY2tEcmFmdFNhdmVyLnNhdmUoKTsKLUFTU0VSVF9FUVVBTChscy5sb2df
c3RyaW5nKCksICdRdW90YUV4Y2VlZGVkIG9uIHNldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0
dGFjaG1lbnQtMTIzNCx7TU9DSyBKU09OfVxuZ2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0
YWNobWVudC0xXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTJcbmdldEl0
ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtM1xuZ2V0SXRlbTpkcmFmdC1jb21tZW50
cy1mb3ItYXR0YWNobWVudC00XG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2ht
ZW50LTFcblF1b3RhRXhjZWVkZWQgb24gc2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNo
bWVudC0xMjM0LHtNT0NLIEpTT059XG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTJcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtM1xucmVt
b3ZlSXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC00XG5zZXRJdGVtOmRyYWZ0LWNv
bW1lbnRzLWZvci1hdHRhY2htZW50LTEyMzQse01PQ0sgSlNPTn0nKTsKLQotLy8gQWx3YXlzIGV4
Y2VlZHMgcXVvdGEsIGV2ZW4gYWZ0ZXIgZXJhc2luZyBhbGwgcmV2aWV3IGNvbW1lbnRzLiBUaGVy
ZSBzaG91bGQgYmUgbm8gc2V0SXRlbSBjYWxscy4KLXZhciBscyA9IG5ldyBNb2NrTG9jYWxTdG9y
YWdlKCk7Ci1scy5zZXRJdGVtID0gZnVuY3Rpb24oKSB7Ci0gICAgdGhpcy5sb2cucHVzaCgnUXVv
dGFFeGNlZWRlZCBvbiBzZXRJdGVtOicgKyBrZXkgKyAnLCcgKyB2YWx1ZSk7Ci0gICAgdGhyb3cg
IlF1b3RhRXhjZWVkZWQiOyAKK2Z1bmN0aW9uIHRlc3RUcmFjTGlua3MoKSB7CisgIHZhciBsaW5r
cyA9IHRyYWNMaW5rcygnZm9vL2Jhci9iYXouY3BwJywgJycpOworICBBU1NFUlRfRVFVQUwoJChs
aW5rcykuYXR0cignaHJlZicpLCAnaHR0cDovL3RyYWMud2Via2l0Lm9yZy9sb2cvdHJ1bmsvZm9v
L2Jhci9iYXouaCcpOworCisgIHZhciBsaW5rcyA9IHRyYWNMaW5rcygnZm9vL2Jhci5jcHAvcXV4
Lm1tJywgJycpOworICBBU1NFUlRfRVFVQUwoJChsaW5rcykuYXR0cignaHJlZicpLCAnaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9sb2cvdHJ1bmsvZm9vL2Jhci5jcHAvcXV4LmgnKTsKIH0KLWxzLmxv
Y2FsU3RvcmFnZVN0b3JlID0gewotICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0x
JzogJ3siYm9ybi1vbiI6IDEwMCwgImNvbW1lbnRzIjpbXX0nLAotICAgICdkcmFmdC1jb21tZW50
cy1mb3ItYXR0YWNobWVudC0yJzogJ3siYm9ybi1vbiI6ICcgKyAoRGF0ZS5ub3coKSAtIDEwMCkg
KyAnLCAiY29tbWVudHMiOltdfScsCi0gICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50
LTMnOiAneyJib3JuLW9uIjogJyArIChEYXRlLm5vdygpIC0gMTAwKSArICcsICJjb21tZW50cyI6
W119JywKLSAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtNCc6ICd7ImJvcm4tb24i
OiAnICsgKERhdGUubm93KCkgLSAxMDApICsgJywgImNvbW1lbnRzIjpbXX0nCi19OwotdmFyIG1v
Y2tEcmFmdFNhdmVyID0gbmV3IE1vY2tEcmFmdENvbW1lbnRTYXZlcignMTIzNCcsIGxzKTsKLW1v
Y2tEcmFmdFNhdmVyLl9zaG91bGRfcmVtb3ZlX2NvbW1lbnRzID0gZnVuY3Rpb24oKSB7IHJldHVy
biB0cnVlOyB9OwotbW9ja0RyYWZ0U2F2ZXIuc2F2ZSgpOwotLy8gU2Vjb25kIHNhdmUgdG8gZW5z
dXJlIHRoYXQgd2Ugc3RvcCB0cnlpbmcgdG8gc2F2ZSB3aGVuIHdlIGZhaWwgdGhlIHByb21wdC4K
LW1vY2tEcmFmdFNhdmVyLnNhdmUoKTsKLUFTU0VSVF9FUVVBTChscy5sb2dfc3RyaW5nKCksICdn
ZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTFcbmdldEl0ZW06ZHJhZnQtY29t
bWVudHMtZm9yLWF0dGFjaG1lbnQtMlxuZ2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNo
bWVudC0zXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTRcbnJlbW92ZUl0
ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMVxucmVtb3ZlSXRlbTpkcmFmdC1jb21t
ZW50cy1mb3ItYXR0YWNobWVudC0yXG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTNcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtNCcpOwot
Ci12YXIgbHMgPSBuZXcgTW9ja0xvY2FsU3RvcmFnZSgpOwotbHMubG9jYWxTdG9yYWdlU3RvcmUg
PSB7Ci0gICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTEnOiAneyJib3JuLW9uIjog
MTAwLCAiY29tbWVudHMiOltdfScsCi0gICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50
LTInOiAneyJib3JuLW9uIjogMTAwLCAiY29tbWVudHMiOlt7InN0YXJ0X2xpbmVfaWQiOiAxLCAi
ZW5kX2xpbmVfaWQiOiAyLCAiY29udGVudHMiOiAiRFVNTVkgQ09OVEVOVFMifSwgeyJzdGFydF9s
aW5lX2lkIjogMywgImVuZF9saW5lX2lkIjogNCwgImNvbnRlbnRzIjogIkRVTU1ZIENPTlRFTlRT
IDIifV19JwotfTsKLXZhciBjb21tZW50cyA9IG5ldyBNb2NrRHJhZnRDb21tZW50U2F2ZXIoJzIn
LCBscykuc2F2ZWRfY29tbWVudHMoKS5jb21tZW50czsKLUFTU0VSVF9FUVVBTChjb21tZW50cy5s
ZW5ndGgsIDIpOwotQVNTRVJUX0VRVUFMKGxzLmxvZ19zdHJpbmcoKSwgJ2dldEl0ZW06ZHJhZnQt
Y29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMicpOwotCi12YXIgbHMgPSBuZXcgTW9ja0xvY2FsU3Rv
cmFnZSgpOwotbHMubG9jYWxTdG9yYWdlU3RvcmUgPSB7Ci0gICAgJ2RyYWZ0LWNvbW1lbnRzLWZv
ci1hdHRhY2htZW50LTEnOiAnY29ycnVwdCBjb21tZW50cycKLX07Ci12YXIgY29tbWVudHMgPSBu
ZXcgTW9ja0RyYWZ0Q29tbWVudFNhdmVyKCcxJywgbHMpLnNhdmVkX2NvbW1lbnRzKCkuY29tbWVu
dHM7Ci1BU1NFUlRfRVFVQUwobHMubG9nX3N0cmluZygpLCAnZ2V0SXRlbTpkcmFmdC1jb21tZW50
cy1mb3ItYXR0YWNobWVudC0xXG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2ht
ZW50LTEnKTsKLQotdmFyIGxzID0gbmV3IE1vY2tMb2NhbFN0b3JhZ2UoKTsKLWxzLmxvY2FsU3Rv
cmFnZVN0b3JlID0gewotICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xJzogJ1si
YWxzbyBjb3JydXB0IGNvbW1lbnRzIl0nCi19OwotdmFyIGNvbW1lbnRzID0gbmV3IE1vY2tEcmFm
dENvbW1lbnRTYXZlcignMScsIGxzKS5zYXZlZF9jb21tZW50cygpLmNvbW1lbnRzOwotQVNTRVJU
X0VRVUFMKGxzLmxvZ19zdHJpbmcoKSwgJ2dldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFj
aG1lbnQtMVxucmVtb3ZlSXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xJyk7CiAK
K2Z1bmN0aW9uIHRlc3REcmFmdENvbW1lbnRTYXZlcigpIHsKKyAgZnVuY3Rpb24gTW9ja0xvY2Fs
U3RvcmFnZSgpIHsKKyAgICAgIHRoaXMubG9jYWxTdG9yYWdlU3RvcmUgPSB7fTsKKyAgICAgIHRo
aXMubG9nID0gW107CisKKyAgICAgIHRoaXMuZ2V0SXRlbSA9IGZ1bmN0aW9uKGtleSkgeworICAg
ICAgICAgIHRoaXMubG9nLnB1c2goJ2dldEl0ZW06JyArIGtleSk7CisgICAgICAgICAgcmV0dXJu
IHRoaXMubG9jYWxTdG9yYWdlU3RvcmVba2V5XTsKKyAgICAgIH07CisKKyAgICAgIHRoaXMuc2V0
SXRlbSA9IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgICAgICAvLyBGb3IgdGVzdGluZyBz
YWtlLCBjb25zaWRlciBoYXZpbmcgbW9yZSB0aGFuIDIgaXRlbXMgdG8gZXhjZWVkIHRoZSBzdG9y
YWdlIHF1b3RhLgorICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmxvY2FsU3RvcmFnZVN0
b3JlKS5sZW5ndGggPiAyKSB7CisgICAgICAgICAgICAgIHRoaXMubG9nLnB1c2goJ1F1b3RhRXhj
ZWVkZWQgb24gc2V0SXRlbTonICsga2V5ICsgJywnICsgdmFsdWUpOworICAgICAgICAgICAgICB0
aHJvdyAiUXVvdGFFeGNlZWRlZCI7CisgICAgICAgICAgfQorICAgICAgICAgIHRoaXMubG9nLnB1
c2goJ3NldEl0ZW06JyArIGtleSArICcsJyArIHZhbHVlKTsKKyAgICAgICAgICB0aGlzLmxvY2Fs
U3RvcmFnZVN0b3JlW2tleV0gPSB2YWx1ZTsKKyAgICAgIH07CisKKyAgICAgIHRoaXMucmVtb3Zl
SXRlbSA9IGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgIHRoaXMubG9nLnB1c2goJ3JlbW92ZUl0
ZW06JyArIGtleSk7CisgICAgICAgICAgZGVsZXRlIHRoaXMubG9jYWxTdG9yYWdlU3RvcmVba2V5
XTsKKyAgICAgIH07CisKKyAgICAgIHRoaXMubG9nX3N0cmluZyA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIHJldHVybiB0aGlzLmxvZy5qb2luKCdcbicpOworICAgICAgfTsKKworICAgICAgdGhp
cy5rZXkgPSBmdW5jdGlvbihpKSB7CisgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMu
bG9jYWxTdG9yYWdlU3RvcmUpW2ldOworICAgICAgfTsKKworICAgICAgdGhpcy5fX2RlZmluZUdl
dHRlcl9fKCdsZW5ndGgnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gT2JqZWN0Lmtl
eXModGhpcy5sb2NhbFN0b3JhZ2VTdG9yZSkubGVuZ3RoOworICAgICAgfSk7CisgIH0KKworICBm
dW5jdGlvbiBNb2NrRHJhZnRDb21tZW50U2F2ZXIoYXR0YWNobWVudF9pZCwgb3B0X2xvY2FsU3Rv
cmFnZSkgeworICAgICAgRHJhZnRDb21tZW50U2F2ZXIuY2FsbCh0aGlzLCBhdHRhY2htZW50X2lk
LCBvcHRfbG9jYWxTdG9yYWdlKTsKKyAgfQorCisgIGluaGVyaXRzKE1vY2tEcmFmdENvbW1lbnRT
YXZlciwgRHJhZnRDb21tZW50U2F2ZXIpCisKKyAgTW9ja0RyYWZ0Q29tbWVudFNhdmVyLnByb3Rv
dHlwZS5fanNvbiA9IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuICJ7TU9DSyBKU09OfSI7Cisg
IH0KKworICBNb2NrRHJhZnRDb21tZW50U2F2ZXIucHJvdG90eXBlLl9zaG91bGRfcmVtb3ZlX2Nv
bW1lbnRzID0gZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICB9CisK
KyAgLy8gQmFzaWMgc2V0SXRlbS4KKyAgdmFyIGxzID0gbmV3IE1vY2tMb2NhbFN0b3JhZ2UoKTsK
KyAgbmV3IE1vY2tEcmFmdENvbW1lbnRTYXZlcignMTIzNCcsIGxzKS5zYXZlKCk7CisgIEFTU0VS
VF9FUVVBTChscy5sb2dfc3RyaW5nKCksICdzZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTEyMzQse01PQ0sgSlNPTn0nKTsKKworICAvLyBFeGNlZWQgcXVvdGEsIGJ1dCBzdWNj
ZWVkIGFmdGVyIGVyYXNpbmcgb2xkIHJldmlld3MuCisgIHZhciBscyA9IG5ldyBNb2NrTG9jYWxT
dG9yYWdlKCk7CisgIGxzLmxvY2FsU3RvcmFnZVN0b3JlID0geworICAgICAgJ2RyYWZ0LWNvbW1l
bnRzLWZvci1hdHRhY2htZW50LTEnOiAneyJib3JuLW9uIjogMTAwLCAiY29tbWVudHMiOltdfScs
CisgICAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMic6ICd7ImJvcm4tb24iOiAx
MDAsICJjb21tZW50cyI6W119JywKKyAgICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVu
dC0zJzogJ3siYm9ybi1vbiI6IDEwMCwgImNvbW1lbnRzIjpbXX0nLAorICAgICAgJ2RyYWZ0LWNv
bW1lbnRzLWZvci1hdHRhY2htZW50LTQnOiAneyJib3JuLW9uIjogJyArIChEYXRlLm5vdygpIC0g
MTAwKSArICcsICJjb21tZW50cyI6W119JworICB9OworICBuZXcgTW9ja0RyYWZ0Q29tbWVudFNh
dmVyKCcxMjM0JywgbHMpLnNhdmUoKTsKKyAgQVNTRVJUX0VRVUFMKGxzLmxvZ19zdHJpbmcoKSwg
J1F1b3RhRXhjZWVkZWQgb24gc2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0x
MjM0LHtNT0NLIEpTT059XG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTFc
bmdldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMlxuZ2V0SXRlbTpkcmFmdC1j
b21tZW50cy1mb3ItYXR0YWNobWVudC0zXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTRcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMVxucmVt
b3ZlSXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0yXG5yZW1vdmVJdGVtOmRyYWZ0
LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTNcbnNldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0
dGFjaG1lbnQtMTIzNCx7TU9DSyBKU09OfScpOworCisgIC8vIEV4Y2VlZCBxdW90YSBhZnRlciBl
cmFzaW5nIG9sZCByZXZpZXdzIGFuZCBmYWlsIGFmdGVyIHByb21wdC4KKyAgdmFyIGxzID0gbmV3
IE1vY2tMb2NhbFN0b3JhZ2UoKTsKKyAgbHMubG9jYWxTdG9yYWdlU3RvcmUgPSB7CisgICAgICAn
ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMSc6ICd7ImJvcm4tb24iOiAxMDAsICJjb21t
ZW50cyI6W119JywKKyAgICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0yJzogJ3si
Ym9ybi1vbiI6ICcgKyAoRGF0ZS5ub3coKSAtIDEwMCkgKyAnLCAiY29tbWVudHMiOltdfScsCisg
ICAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMyc6ICd7ImJvcm4tb24iOiAnICsg
KERhdGUubm93KCkgLSAxMDApICsgJywgImNvbW1lbnRzIjpbXX0nLAorICAgICAgJ2RyYWZ0LWNv
bW1lbnRzLWZvci1hdHRhY2htZW50LTQnOiAneyJib3JuLW9uIjogJyArIChEYXRlLm5vdygpIC0g
MTAwKSArICcsICJjb21tZW50cyI6W119JworICB9OworICB2YXIgbW9ja0RyYWZ0U2F2ZXIgPSBu
ZXcgTW9ja0RyYWZ0Q29tbWVudFNhdmVyKCcxMjM0JywgbHMpOworICBtb2NrRHJhZnRTYXZlci5z
YXZlKCk7CisgIC8vIFNlY29uZCBzYXZlIHRvIGVuc3VyZSB0aGF0IHdlIHN0b3AgdHJ5aW5nIHRv
IHNhdmUgd2hlbiB3ZSBmYWlsIHRoZSBwcm9tcHQuCisgIG1vY2tEcmFmdFNhdmVyLnNhdmUoKTsK
KyAgQVNTRVJUX0VRVUFMKGxzLmxvZ19zdHJpbmcoKSwgJ1F1b3RhRXhjZWVkZWQgb24gc2V0SXRl
bTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xMjM0LHtNT0NLIEpTT059XG5nZXRJdGVt
OmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTFcbmdldEl0ZW06ZHJhZnQtY29tbWVudHMt
Zm9yLWF0dGFjaG1lbnQtMlxuZ2V0SXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0z
XG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTRcbnJlbW92ZUl0ZW06ZHJh
ZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMVxuUXVvdGFFeGNlZWRlZCBvbiBzZXRJdGVtOmRy
YWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTEyMzQse01PQ0sgSlNPTn0nKTsKKworICAvLyBF
eGNlZWQgcXVvdGEgYWZ0ZXIgZXJhc2luZyBvbGQgcmV2aWV3cywgYnV0IHN1Y2NlZWQgYWZ0ZXIg
cHJvbXB0LgorICB2YXIgbHMgPSBuZXcgTW9ja0xvY2FsU3RvcmFnZSgpOworICBscy5sb2NhbFN0
b3JhZ2VTdG9yZSA9IHsKKyAgICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xJzog
J3siYm9ybi1vbiI6IDEwMCwgImNvbW1lbnRzIjpbXX0nLAorICAgICAgJ2RyYWZ0LWNvbW1lbnRz
LWZvci1hdHRhY2htZW50LTInOiAneyJib3JuLW9uIjogJyArIChEYXRlLm5vdygpIC0gMTAwKSAr
ICcsICJjb21tZW50cyI6W119JywKKyAgICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVu
dC0zJzogJ3siYm9ybi1vbiI6ICcgKyAoRGF0ZS5ub3coKSAtIDEwMCkgKyAnLCAiY29tbWVudHMi
OltdfScsCisgICAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtNCc6ICd7ImJvcm4t
b24iOiAnICsgKERhdGUubm93KCkgLSAxMDApICsgJywgImNvbW1lbnRzIjpbXX0nCisgIH07Cisg
IHZhciBtb2NrRHJhZnRTYXZlciA9IG5ldyBNb2NrRHJhZnRDb21tZW50U2F2ZXIoJzEyMzQnLCBs
cyk7CisgIG1vY2tEcmFmdFNhdmVyLl9zaG91bGRfcmVtb3ZlX2NvbW1lbnRzID0gZnVuY3Rpb24o
KSB7IHJldHVybiB0cnVlOyB9OworICBtb2NrRHJhZnRTYXZlci5zYXZlKCk7CisgIEFTU0VSVF9F
UVVBTChscy5sb2dfc3RyaW5nKCksICdRdW90YUV4Y2VlZGVkIG9uIHNldEl0ZW06ZHJhZnQtY29t
bWVudHMtZm9yLWF0dGFjaG1lbnQtMTIzNCx7TU9DSyBKU09OfVxuZ2V0SXRlbTpkcmFmdC1jb21t
ZW50cy1mb3ItYXR0YWNobWVudC0xXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2ht
ZW50LTJcbmdldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtM1xuZ2V0SXRlbTpk
cmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC00XG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1lbnRz
LWZvci1hdHRhY2htZW50LTFcblF1b3RhRXhjZWVkZWQgb24gc2V0SXRlbTpkcmFmdC1jb21tZW50
cy1mb3ItYXR0YWNobWVudC0xMjM0LHtNT0NLIEpTT059XG5yZW1vdmVJdGVtOmRyYWZ0LWNvbW1l
bnRzLWZvci1hdHRhY2htZW50LTJcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFj
aG1lbnQtM1xucmVtb3ZlSXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC00XG5zZXRJ
dGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTEyMzQse01PQ0sgSlNPTn0nKTsKKwor
ICAvLyBBbHdheXMgZXhjZWVkcyBxdW90YSwgZXZlbiBhZnRlciBlcmFzaW5nIGFsbCByZXZpZXcg
Y29tbWVudHMuIFRoZXJlIHNob3VsZCBiZSBubyBzZXRJdGVtIGNhbGxzLgorICB2YXIgbHMgPSBu
ZXcgTW9ja0xvY2FsU3RvcmFnZSgpOworICBscy5zZXRJdGVtID0gZnVuY3Rpb24oKSB7CisgICAg
ICB0aGlzLmxvZy5wdXNoKCdRdW90YUV4Y2VlZGVkIG9uIHNldEl0ZW06JyArIGtleSArICcsJyAr
IHZhbHVlKTsKKyAgICAgIHRocm93ICJRdW90YUV4Y2VlZGVkIjsgCisgIH0KKyAgbHMubG9jYWxT
dG9yYWdlU3RvcmUgPSB7CisgICAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMSc6
ICd7ImJvcm4tb24iOiAxMDAsICJjb21tZW50cyI6W119JywKKyAgICAgICdkcmFmdC1jb21tZW50
cy1mb3ItYXR0YWNobWVudC0yJzogJ3siYm9ybi1vbiI6ICcgKyAoRGF0ZS5ub3coKSAtIDEwMCkg
KyAnLCAiY29tbWVudHMiOltdfScsCisgICAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1l
bnQtMyc6ICd7ImJvcm4tb24iOiAnICsgKERhdGUubm93KCkgLSAxMDApICsgJywgImNvbW1lbnRz
IjpbXX0nLAorICAgICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTQnOiAneyJib3Ju
LW9uIjogJyArIChEYXRlLm5vdygpIC0gMTAwKSArICcsICJjb21tZW50cyI6W119JworICB9Owor
ICB2YXIgbW9ja0RyYWZ0U2F2ZXIgPSBuZXcgTW9ja0RyYWZ0Q29tbWVudFNhdmVyKCcxMjM0Jywg
bHMpOworICBtb2NrRHJhZnRTYXZlci5fc2hvdWxkX3JlbW92ZV9jb21tZW50cyA9IGZ1bmN0aW9u
KCkgeyByZXR1cm4gdHJ1ZTsgfTsKKyAgbW9ja0RyYWZ0U2F2ZXIuc2F2ZSgpOworICAvLyBTZWNv
bmQgc2F2ZSB0byBlbnN1cmUgdGhhdCB3ZSBzdG9wIHRyeWluZyB0byBzYXZlIHdoZW4gd2UgZmFp
bCB0aGUgcHJvbXB0LgorICBtb2NrRHJhZnRTYXZlci5zYXZlKCk7CisgIEFTU0VSVF9FUVVBTChs
cy5sb2dfc3RyaW5nKCksICdnZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTFc
bmdldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMlxuZ2V0SXRlbTpkcmFmdC1j
b21tZW50cy1mb3ItYXR0YWNobWVudC0zXG5nZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTRcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMVxucmVt
b3ZlSXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0yXG5yZW1vdmVJdGVtOmRyYWZ0
LWNvbW1lbnRzLWZvci1hdHRhY2htZW50LTNcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9y
LWF0dGFjaG1lbnQtNCcpOworCisgIHZhciBscyA9IG5ldyBNb2NrTG9jYWxTdG9yYWdlKCk7Cisg
IGxzLmxvY2FsU3RvcmFnZVN0b3JlID0geworICAgICAgJ2RyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTEnOiAneyJib3JuLW9uIjogMTAwLCAiY29tbWVudHMiOltdfScsCisgICAgICAnZHJh
ZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMic6ICd7ImJvcm4tb24iOiAxMDAsICJjb21tZW50
cyI6W3sic3RhcnRfbGluZV9pZCI6IDEsICJlbmRfbGluZV9pZCI6IDIsICJjb250ZW50cyI6ICJE
VU1NWSBDT05URU5UUyJ9LCB7InN0YXJ0X2xpbmVfaWQiOiAzLCAiZW5kX2xpbmVfaWQiOiA0LCAi
Y29udGVudHMiOiAiRFVNTVkgQ09OVEVOVFMgMiJ9XX0nCisgIH07CisgIHZhciBjb21tZW50cyA9
IG5ldyBNb2NrRHJhZnRDb21tZW50U2F2ZXIoJzInLCBscykuc2F2ZWRfY29tbWVudHMoKS5jb21t
ZW50czsKKyAgQVNTRVJUX0VRVUFMKGNvbW1lbnRzLmxlbmd0aCwgMik7CisgIEFTU0VSVF9FUVVB
TChscy5sb2dfc3RyaW5nKCksICdnZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRhY2htZW50
LTInKTsKKworICB2YXIgbHMgPSBuZXcgTW9ja0xvY2FsU3RvcmFnZSgpOworICBscy5sb2NhbFN0
b3JhZ2VTdG9yZSA9IHsKKyAgICAgICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xJzog
J2NvcnJ1cHQgY29tbWVudHMnCisgIH07CisgIHZhciBjb21tZW50cyA9IG5ldyBNb2NrRHJhZnRD
b21tZW50U2F2ZXIoJzEnLCBscykuc2F2ZWRfY29tbWVudHMoKS5jb21tZW50czsKKyAgQVNTRVJU
X0VRVUFMKGxzLmxvZ19zdHJpbmcoKSwgJ2dldEl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFj
aG1lbnQtMVxucmVtb3ZlSXRlbTpkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0xJyk7CisK
KyAgdmFyIGxzID0gbmV3IE1vY2tMb2NhbFN0b3JhZ2UoKTsKKyAgbHMubG9jYWxTdG9yYWdlU3Rv
cmUgPSB7CisgICAgICAnZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMSc6ICdbImFsc28g
Y29ycnVwdCBjb21tZW50cyJdJworICB9OworICB2YXIgY29tbWVudHMgPSBuZXcgTW9ja0RyYWZ0
Q29tbWVudFNhdmVyKCcxJywgbHMpLnNhdmVkX2NvbW1lbnRzKCkuY29tbWVudHM7CisgIEFTU0VS
VF9FUVVBTChscy5sb2dfc3RyaW5nKCksICdnZXRJdGVtOmRyYWZ0LWNvbW1lbnRzLWZvci1hdHRh
Y2htZW50LTFcbnJlbW92ZUl0ZW06ZHJhZnQtY29tbWVudHMtZm9yLWF0dGFjaG1lbnQtMScpOwor
fQogCiBmdW5jdGlvbiBzdHJpcEJvcm5Pbihqc29uKSB7CiAgIHJldHVybiBqc29uLnJlcGxhY2Uo
L1wiYm9yblwtb25cIlw6XGQrLC8sICIiKTsKQEAgLTI1Nyw1ICsyNjAsMTcgQEAgZnVuY3Rpb24g
dGVzdFJlYWRkRGlzY2FyZGVkQ29tbWVudFdpdGhQcmV2aW91c0NvbW1lbnQoKSB7CiAKICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpZmYtY29udGVudCcpLmlubmVySFRNTCA9ICcnOwogfQot
dGVzdFJlYWRkRGlzY2FyZGVkQ29tbWVudFdpdGhQcmV2aW91c0NvbW1lbnQoKTsKKworZnVuY3Rp
b24gdGVzdElzQ2hhbmdlTG9nKCkgeworICBBU1NFUlQoIlRvcC1sZXZlbCBDaGFuZ2VMb2cgZmls
ZSBpcyBhIENoYW5nZUxvZyBmaWxlIiwgaXNDaGFuZ2VMb2coIkNoYW5nZUxvZyIpKTsKKyAgQVNT
RVJUKCJTZWNvbmQtbGV2ZWwgQ2hhbmdlTG9nIGZpbGUgaXMgYSBDaGFuZ2VMb2cgZmlsZSIsIGlz
Q2hhbmdlTG9nKCJUb29scy9DaGFuZ2VMb2ciKSk7CisgIEFTU0VSVCgicHJlcGFyZS1DaGFuZ2VM
b2cgaXMgbm90IGEgQ2hhbmdlTG9nIGZpbGUiLCAhaXNDaGFuZ2VMb2coIlRvb2xzL1NjcmlwdHMv
cHJlcGFyZS1DaGFuZ2VMb2ciKSk7CisgIEFTU0VSVCgiQ2hhbmdlTG9nLXNjcmlwdCBpcyBub3Qg
YSBDaGFuZ2VMb2cgZmlsZSIsICFpc0NoYW5nZUxvZygiVG9vbHMvU2NyaXB0cy9DaGFuZ2VMb2ct
c2NyaXB0IikpOworfQorCitmb3IgKHZhciBwcm9wZXJ0eSBpbiB3aW5kb3cpIHsKKyAgaWYgKHBy
b3BlcnR5LmluZGV4T2YoJ3Rlc3QnKSA9PSAwKSB7CisgICAgd2luZG93W3Byb3BlcnR5XSgpOwor
ICB9Cit9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9j
b2RlLXJldmlldy5qcyBiL1dlYnNpdGVzL2J1Z3Mud2Via2l0Lm9yZy9jb2RlLXJldmlldy5qcwpp
bmRleCA3ODIyM2JkZDk4MzMxYTUzNzk3MDc5YTQ4OTc5YWVjOTE5NmIyZjJlLi4xNDMyMmYzY2I2
NTU2N2MzMzY3ZmMwMjAyMGE0YzU0Mzc2OTBkZWEwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9idWdz
LndlYmtpdC5vcmcvY29kZS1yZXZpZXcuanMKKysrIGIvV2Vic2l0ZXMvYnVncy53ZWJraXQub3Jn
L2NvZGUtcmV2aWV3LmpzCkBAIC02NDIsOCArNjQyLDEyIEBAIHZhciBDT0RFX1JFVklFV19VTklU
VEVTVDsKICAgICByZXR1cm4gdHJhY19saW5rczsKICAgfQogCisgIGZ1bmN0aW9uIGlzQ2hhbmdl
TG9nKGZpbGVfbmFtZSkgeworICAgIHJldHVybiBmaWxlX25hbWUubWF0Y2goL1wvQ2hhbmdlTG9n
JC8pIHx8IGZpbGVfbmFtZSA9PSAnQ2hhbmdlTG9nJzsKKyAgfQorCiAgIGZ1bmN0aW9uIGFkZEV4
cGFuZExpbmtzKGZpbGVfbmFtZSkgewotICAgIGlmIChmaWxlX25hbWUuaW5kZXhPZignQ2hhbmdl
TG9nJykgIT0gLTEpCisgICAgaWYgKGlzQ2hhbmdlTG9nKGZpbGVfbmFtZSkpCiAgICAgICByZXR1
cm47CiAKICAgICB2YXIgZmlsZV9kaWZmID0gZmlsZXNbZmlsZV9uYW1lXTsKQEAgLTE5OTQsNiAr
MTk5OCw3IEBAIHZhciBDT0RFX1JFVklFV19VTklUVEVTVDsKICAgICB3aW5kb3cuZXJhc2VEcmFm
dENvbW1lbnRzID0gZXJhc2VEcmFmdENvbW1lbnRzOwogICAgIHdpbmRvdy51bmZyZWV6ZUNvbW1l
bnQgPSB1bmZyZWV6ZUNvbW1lbnQ7CiAgICAgd2luZG93LmdfZHJhZnRDb21tZW50U2F2ZXIgPSBn
X2RyYWZ0Q29tbWVudFNhdmVyOworICAgIHdpbmRvdy5pc0NoYW5nZUxvZyA9IGlzQ2hhbmdlTG9n
OwogICB9IGVsc2UgewogICAgICQoZG9jdW1lbnQpLnJlYWR5KGhhbmRsZURvY3VtZW50UmVhZHkp
CiAgIH0K
</data>
<flag name="review"
          id="118997"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>