<?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>162783</bug_id>
          
          <creation_ts>2016-09-30 03:20:36 -0700</creation_ts>
          <short_desc>Implement animation of font-variation-settings</short_desc>
          <delta_ts>2016-09-30 16:10:27 -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>Text</component>
          <version>Other</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>
          
          <blocked>162490</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235185</commentid>
    <comment_count>0</comment_count>
      <attachid>290319</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 03:20:36 -0700</bug_when>
    <thetext>Created attachment 290319
Patch

Implement animation of font-variation-settings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235456</commentid>
    <comment_count>1</comment_count>
      <attachid>290398</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 15:15:26 -0700</bug_when>
    <thetext>Created attachment 290398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235470</commentid>
    <comment_count>2</comment_count>
      <attachid>290398</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-09-30 15:43:21 -0700</bug_when>
    <thetext>Comment on attachment 290398
Patch

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

&gt; Source/WebCore/page/animation/CSSPropertyAnimation.cpp:385
&gt; +        if (fromItem.tag() != toItem.tag())
&gt; +            return FontVariationSettings();

Is tag order meaningful? If not, I wonder if we should match ignoring order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235475</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 15:48:18 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 290398 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290398&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/animation/CSSPropertyAnimation.cpp:385
&gt; &gt; +        if (fromItem.tag() != toItem.tag())
&gt; &gt; +            return FontVariationSettings();
&gt; 
&gt; Is tag order meaningful? If not, I wonder if we should match ignoring order.

Order isn&apos;t meaningful, but the items in the array are already in sorted order (see FontVariationSettings::insert() to see the search for the correct index). Because this list will always be small, I opted for a simple flat array instead of a more complicated tree data structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235484</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-09-30 16:10:27 -0700</bug_when>
    <thetext>Committed r206690: &lt;http://trac.webkit.org/changeset/206690&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290319</attachid>
            <date>2016-09-30 03:20:36 -0700</date>
            <delta_ts>2016-09-30 15:15:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>15227</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGE4OTRmM2I3M2Y0NGYyNDkwMjRiMDA3NGQ0MmJlOWJhNmQxZjBkYWUKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgU2VwIDMw
IDAyOjU0OjU3IDIwMTYgLTA3MDAKCiAgICBBbmltYXRpb25zCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MmUyMzkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRWYXJpYXRpb25Gb250c0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iZm9udDogMTAwcHggJ1NraWEnOyBmb250LXZh
cmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDIuMyI+SGVsbG88L2Rpdj4KKzxkaXY+UEFTUyAtICJm
b250LXZhcmlhdGlvbi1zZXR0aW5ncyIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAnd2dodCcgMC45NTxicj4KK1BBU1MgLSAiZm9udC12
YXJpYXRpb24tc2V0dGluZ3MiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDFzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86ICd3Z2h0JyAxLjQ8YnI+CitQQVNTIC0gImZvbnQtdmFyaWF0aW9u
LXNldHRpbmdzIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAycyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAnd2dodCcgMi4zPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250
LXZhcmlhdGlvbi1zZXR0aW5ncy1vcmRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1vcmRlci1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyOTkzZDFjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1vcmRlci1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0VmFyaWF0aW9uRm9udHNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImZvbnQ6IDEwMHB4ICdTa2lhJzsgZm9udC12YXJp
YXRpb24tc2V0dGluZ3M6ICd3Z2h0JyAyLjMsICd3ZHRoJyAxLjEiPkhlbGxvPC9kaXY+Cis8ZGl2
PlBBU1MgLSAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiIHByb3BlcnR5IGZvciAiYm94IiBlbGVt
ZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogJ3dnaHQnIDAuOTUsICd3ZHRoJyAw
Ljk1PGJyPgorUEFTUyAtICJmb250LXZhcmlhdGlvbi1zZXR0aW5ncyIgcHJvcGVydHkgZm9yICJi
b3giIGVsZW1lbnQgYXQgMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogJ3dnaHQnIDEuNCwgJ3dk
dGgnIDE8YnI+CitQQVNTIC0gImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiBwcm9wZXJ0eSBmb3Ig
ImJveCIgZWxlbWVudCBhdCAycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAnd2dodCcgMi4zLCAn
d2R0aCcgMS4xPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLW9yZGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLW9yZGVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UzYjMxMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3Mtb3JkZXIuaHRt
bApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRWYXJpYXRpb25Gb250c0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CitAa2V5ZnJhbWVzICJ3ZWlnaHRBbmltYXRpb24iIHsKKyAgICBmcm9tIHsKKyAgICAgICAgZm9u
dC12YXJpYXRpb24tc2V0dGluZ3M6ICJ3Z2h0IiAwLjUsICJ3ZHRoIiAwLjk7CisgICAgfQorICAg
IHRvIHsKKyAgICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICJ3ZHRoIiAxLjIsICJ3Z2h0
IiAzLjI7CisgICAgfQorfQorCisjYm94IHsKKyAgICBmb250OiAxMDBweCAiU2tpYSI7CisgICAg
YW5pbWF0aW9uLW5hbWU6ICJ3ZWlnaHRBbmltYXRpb24iOworICAgIGFuaW1hdGlvbi1kdXJhdGlv
bjogM3M7CisgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYm94Ij5IZWxsbzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgLy8g
W2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFs
dWUsIHRvbGVyYW5jZV0KKyAgICBbIndlaWdodEFuaW1hdGlvbiIsIDAuNSwgImJveCIsICJmb250
LXZhcmlhdGlvbi1zZXR0aW5ncyIsICInd2dodCcgMC45NSwgJ3dkdGgnIDAuOTUiLCAwLjA1XSwK
KyAgICBbIndlaWdodEFuaW1hdGlvbiIsIDEuMCwgImJveCIsICJmb250LXZhcmlhdGlvbi1zZXR0
aW5ncyIsICInd2dodCcgMS40LCAnd2R0aCcgMSIsIDAuMDVdLAorICAgIFsid2VpZ2h0QW5pbWF0
aW9uIiwgMi4wLCAiYm94IiwgImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiwgIid3Z2h0JyAyLjMs
ICd3ZHRoJyAxLjEiLCAwLjA1XSwKK107CitydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVz
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlLCB1bmRlZmluZWQpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy11
bmxpa2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZm9udC12YXJpYXRp
b24tc2V0dGluZ3MtdW5saWtlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzI5MTUxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3MtdW5saWtlLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRWYXJp
YXRpb25Gb250c0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBzdHlsZT0iZm9udDogMTAwcHggJ1NraWEnOyI+SGVsbG88L2Rpdj4KKzxkaXY+UEFTUyAtICJm
b250LXZhcmlhdGlvbi1zZXR0aW5ncyIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiBub3JtYWw8YnI+CitQQVNTIC0gImZvbnQtdmFyaWF0
aW9uLXNldHRpbmdzIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiBub3JtYWw8YnI+CitQQVNTIC0gImZvbnQtdmFyaWF0aW9uLXNldHRpbmdz
IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRv
OiBub3JtYWw8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3MtdW5saWtlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLXVubGlrZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNjEwNDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLXVubGlrZS5o
dG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFZhcmlhdGlvbkZvbnRzRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzdHls
ZT4KK0BrZXlmcmFtZXMgIndlaWdodEFuaW1hdGlvbiIgeworICAgIGZyb20geworICAgICAgICBm
b250LXZhcmlhdGlvbi1zZXR0aW5nczogIndnaHQiIDAuNSwgIndkdGgiIDAuOTsKKyAgICB9Cisg
ICAgdG8geworICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogIndnaHQiIDMuMjsKKyAg
ICB9Cit9CisKKyNib3ggeworICAgIGZvbnQ6IDEwMHB4ICJTa2lhIjsKKyAgICBhbmltYXRpb24t
bmFtZTogIndlaWdodEFuaW1hdGlvbiI7CisgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsKKyAg
ICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJib3giPkhlbGxvPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPHNjcmlwdD4KK3ZhciBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAvLyBbYW5pbWF0aW9u
LW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJh
bmNlXQorICAgIFsid2VpZ2h0QW5pbWF0aW9uIiwgMC41LCAiYm94IiwgImZvbnQtdmFyaWF0aW9u
LXNldHRpbmdzIiwgIm5vcm1hbCIsIDAuMDVdLAorICAgIFsid2VpZ2h0QW5pbWF0aW9uIiwgMS4w
LCAiYm94IiwgImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiwgIm5vcm1hbCIsIDAuMDVdLAorICAg
IFsid2VpZ2h0QW5pbWF0aW9uIiwgMi4wLCAiYm94IiwgImZvbnQtdmFyaWF0aW9uLXNldHRpbmdz
IiwgIm5vcm1hbCIsIDAuMDVdLAorXTsKK3J1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUsIHVuZGVmaW5lZCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLmh0
bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE3YTI5ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3MuaHRt
bApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRWYXJpYXRpb25Gb250c0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFZh
cmlhdGlvbkZvbnRzRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0BrZXlm
cmFtZXMgIndlaWdodEFuaW1hdGlvbiIgeworICAgIGZyb20geworICAgICAgICBmb250LXZhcmlh
dGlvbi1zZXR0aW5nczogIndnaHQiIDAuNTsKKyAgICB9CisgICAgdG8geworICAgICAgICBmb250
LXZhcmlhdGlvbi1zZXR0aW5nczogIndnaHQiIDMuMjsKKyAgICB9Cit9CisKKyNib3ggeworICAg
IGZvbnQ6IDEwMHB4ICJTa2lhIjsKKyAgICBhbmltYXRpb24tbmFtZTogIndlaWdodEFuaW1hdGlv
biI7CisgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1
bmN0aW9uOiBsaW5lYXI7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJi
b3giPkhlbGxvPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBl
eHBlY3RlZFZhbHVlcyA9IFsKKyAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQt
aWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgIFsid2VpZ2h0QW5p
bWF0aW9uIiwgMC41LCAiYm94IiwgImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiwgIid3Z2h0JyAw
Ljk1IiwgMC4wNV0sCisgICAgWyJ3ZWlnaHRBbmltYXRpb24iLCAxLjAsICJib3giLCAiZm9udC12
YXJpYXRpb24tc2V0dGluZ3MiLCAiJ3dnaHQnIDEuNCIsIDAuMDVdLAorICAgIFsid2VpZ2h0QW5p
bWF0aW9uIiwgMi4wLCAiYm94IiwgImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiwgIid3Z2h0JyAy
LjMiLCAwLjA1XSwKK107CitydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlLCB1bmRlZmluZWQpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5q
cyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBl
cnMuanMKaW5kZXggMjA0MWM3MC4uNzQzMTI3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0y
NTgsNiArMjU4LDI5IEBAIGZ1bmN0aW9uIGNvbXBhcmVDU1NJbWFnZXMoY29tcHV0ZWRWYWx1ZSwg
ZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKQogICAgIH0KIH0KIAorZnVuY3Rpb24gY29tcGFyZUZv
bnRWYXJpYXRpb25TZXR0aW5ncyhjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFu
Y2UpCit7CisgICAgaWYgKGNvbXB1dGVkVmFsdWUgPT0gIm5vcm1hbCIgfHwgZXhwZWN0ZWRWYWx1
ZSA9PSAibm9ybWFsIikKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWUgPT0gZXhwZWN0ZWRW
YWx1ZTsKKyAgICB2YXIgY29tcHV0ZWQgPSBjb21wdXRlZFZhbHVlLnNwbGl0KCIsICIpOworICAg
IHZhciBleHBlY3RlZCA9IGV4cGVjdGVkVmFsdWUuc3BsaXQoIiwgIik7CisgICAgaWYgKGNvbXB1
dGVkLmxlbmd0aCAhPSBleHBlY3RlZC5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXB1dGVkLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZh
ciBjb21wdXRlZFBpZWNlcyA9IGNvbXB1dGVkW2ldLnNwbGl0KCIgIik7CisgICAgICAgIHZhciBl
eHBlY3RlZFBpZWNlcyA9IGV4cGVjdGVkW2ldLnNwbGl0KCIgIik7CisgICAgICAgIGlmIChjb21w
dXRlZFBpZWNlcy5sZW5ndGggIT0gMiB8fCBleHBlY3RlZFBpZWNlcy5sZW5ndGggIT0gMikKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGNvbXB1dGVkUGllY2VzWzBdICE9
IGV4cGVjdGVkUGllY2VzWzBdKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2
YXIgY29tcHV0ZWROdW1iZXIgPSBOdW1iZXIucGFyc2VGbG9hdChjb21wdXRlZFBpZWNlc1sxXSk7
CisgICAgICAgIHZhciBleHBlY3RlZE51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KGV4cGVjdGVk
UGllY2VzWzFdKTsKKyAgICAgICAgaWYgKE1hdGguYWJzKGNvbXB1dGVkTnVtYmVyIC0gZXhwZWN0
ZWROdW1iZXIpID4gdG9sZXJhbmNlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogLy8gQ2FsbGVkIGJ5IENTUyBJbWFnZSBmdW5jdGlvbiBm
aWx0ZXIoKSBhcyB3ZWxsIGFzIGZpbHRlciBwcm9wZXJ0eS4KIGZ1bmN0aW9uIGNvbXBhcmVGaWx0
ZXJGdW5jdGlvbnMoY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKQogewpA
QCAtNDAxLDYgKzQyNCw3IEBAIGZ1bmN0aW9uIGdldFByb3BlcnR5VmFsdWUocHJvcGVydHksIGVs
ZW1lbnRJZCwgaWZyYW1lSWQpCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0
Q2xpcFBhdGgiCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0U2hhcGVJbnNp
ZGUiCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0U2hhcGVPdXRzaWRlIgor
ICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIgog
ICAgICAgICAgICAgICAgfHwgIXByb3BlcnR5LmluZGV4T2YoIndlYmtpdFRyYW5zZm9ybSIpCiAg
ICAgICAgICAgICAgICB8fCAhcHJvcGVydHkuaW5kZXhPZigidHJhbnNmb3JtIikpIHsKICAgICAg
ICAgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpW3Byb3Bl
cnR5LnNwbGl0KCIuIilbMF1dOwpAQCAtNDQ2LDkgKzQ3MCwxMCBAQCBmdW5jdGlvbiBjb21wYXJl
UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwgY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9s
ZXJhbmNlKQogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdE1hc2tJbWFnZSIK
ICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRNYXNrQm94SW1hZ2UiKQogICAg
ICAgICByZXN1bHQgPSBjb21wYXJlQ1NTSW1hZ2VzKGNvbXB1dGVkVmFsdWUsIGV4cGVjdGVkVmFs
dWUsIHRvbGVyYW5jZSk7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAocHJvcGVydHkgPT0gImZv
bnQtdmFyaWF0aW9uLXNldHRpbmdzIikKKyAgICAgICAgcmVzdWx0ID0gY29tcGFyZUZvbnRWYXJp
YXRpb25TZXR0aW5ncyhjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwor
ICAgIGVsc2UKICAgICAgICAgcmVzdWx0ID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBl
eHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwotICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFu
aW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFu
aW1hdGlvbi5jcHAKaW5kZXggMmZmNmVhZi4uMDc1NWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDksIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNsaXBQYXRoT3BlcmF0aW9uLmgiCiAjaW5j
bHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCisjaW5jbHVkZSAiRm9udFRhZ2dlZFNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaCIKQEAgLTM3MSw2
ICszNzIsMjMgQEAgc3RhdGljIGlubGluZSBOaW5lUGllY2VJbWFnZSBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgTmluZVBpZWMKICAgICByZXR1cm4gTmluZVBpZWNl
SW1hZ2UobmV3Q29udGVudEltYWdlLCBmcm9tLmltYWdlU2xpY2VzKCksIGZyb20uZmlsbCgpLCBm
cm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgpLCBmcm9tLmhvcml6b250YWxSdWxlKCks
IGZyb20udmVydGljYWxSdWxlKCkpOwogfQogCitzdGF0aWMgaW5saW5lIEZvbnRWYXJpYXRpb25T
ZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgRm9udFZh
cmlhdGlvblNldHRpbmdzJiBmcm9tLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIHRvLCBk
b3VibGUgcHJvZ3Jlc3MpCit7CisgICAgaWYgKGZyb20uc2l6ZSgpICE9IHRvLnNpemUoKSkKKyAg
ICAgICAgcmV0dXJuIEZvbnRWYXJpYXRpb25TZXR0aW5ncygpOworICAgIEZvbnRWYXJpYXRpb25T
ZXR0aW5ncyByZXN1bHQ7CisgICAgdW5zaWduZWQgc2l6ZSA9IGZyb20uc2l6ZSgpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgYXV0byYgZnJvbUl0
ZW0gPSBmcm9tLmF0KGkpOworICAgICAgICBhdXRvJiB0b0l0ZW0gPSB0by5hdChpKTsKKyAgICAg
ICAgaWYgKGZyb21JdGVtLnRhZygpICE9IHRvSXRlbS50YWcoKSkKKyAgICAgICAgICAgIHJldHVy
biBGb250VmFyaWF0aW9uU2V0dGluZ3MoKTsKKyAgICAgICAgZmxvYXQgaW50ZXJwb2xhdGVkID0g
YmxlbmRGdW5jKGFuaW0sIGZyb21JdGVtLnZhbHVlKCksIHRvSXRlbS52YWx1ZSgpLCBwcm9ncmVz
cyk7CisgICAgICAgIHJlc3VsdC5pbnNlcnQoeyBmcm9tSXRlbS50YWcoKSwgaW50ZXJwb2xhdGVk
IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBjbGFzcyBBbmltYXRpb25Qcm9w
ZXJ0eVdyYXBwZXJCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRpb25Qcm9w
ZXJ0eVdyYXBwZXJCYXNlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTUxNyw2
ICs1MzUsMjkgQEAgcHVibGljOgogICAgIH0KIH07CiAKK2NsYXNzIFByb3BlcnR5V3JhcHBlckZv
bnRWYXJpYXRpb25TZXR0aW5ncyA6IHB1YmxpYyBQcm9wZXJ0eVdyYXBwZXI8Rm9udFZhcmlhdGlv
blNldHRpbmdzPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
UHJvcGVydHlXcmFwcGVyRm9udFZhcmlhdGlvblNldHRpbmdzKENTU1Byb3BlcnR5SUQgcHJvcCwg
Rm9udFZhcmlhdGlvblNldHRpbmdzIChSZW5kZXJTdHlsZTo6KmdldHRlcikoKSBjb25zdCwgdm9p
ZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXIpKEZvbnRWYXJpYXRpb25TZXR0aW5ncykpCisgICAgICAg
IDogUHJvcGVydHlXcmFwcGVyPEZvbnRWYXJpYXRpb25TZXR0aW5ncz4ocHJvcCwgZ2V0dGVyLCBz
ZXR0ZXIpCisgICAgeworICAgIH0KKworICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxl
KiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IC8vIElmIHRoZSBzdHlsZSBwb2ludGVycyBhcmUgdGhlIHNhbWUsIGRvbid0IGJvdGhlciBkb2lu
ZyB0aGUgdGVzdC4KKyAgICAgICAgLy8gSWYgZWl0aGVyIGlzIG51bGwsIHJldHVybiBmYWxzZS4g
SWYgYm90aCBhcmUgbnVsbCwgcmV0dXJuIHRydWUuCisgICAgICAgIGlmIChhID09IGIpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCFhIHx8ICFiKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgdmFy
aWF0aW9uU2V0dGluZ3NBID0gKGEtPiptX2dldHRlcikoKTsKKyAgICAgICAgY29uc3QgRm9udFZh
cmlhdGlvblNldHRpbmdzJiB2YXJpYXRpb25TZXR0aW5nc0IgPSAoYi0+Km1fZ2V0dGVyKSgpOwor
ICAgICAgICByZXR1cm4gdmFyaWF0aW9uU2V0dGluZ3NBID09IHZhcmlhdGlvblNldHRpbmdzQjsK
KyAgICB9Cit9OworCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiBjbGFzcyBQcm9wZXJ0eVdyYXBw
ZXJTaGFwZSA6IHB1YmxpYyBSZWZDb3VudGVkUHJvcGVydHlXcmFwcGVyPFNoYXBlVmFsdWU+IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTE0MzgsNiArMTQ3OSw3IEBAIENTU1By
b3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFw
KCkKIAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPFNWR0xlbmd0aD4oQ1NTUHJvcGVydHlC
YXNlbGluZVNoaWZ0LCAmUmVuZGVyU3R5bGU6OmJhc2VsaW5lU2hpZnRWYWx1ZSwgJlJlbmRlclN0
eWxlOjpzZXRCYXNlbGluZVNoaWZ0VmFsdWUpLAogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVy
PFNWR0xlbmd0aD4oQ1NTUHJvcGVydHlLZXJuaW5nLCAmUmVuZGVyU3R5bGU6Omtlcm5pbmcsICZS
ZW5kZXJTdHlsZTo6c2V0S2VybmluZyksCisgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJGb250
VmFyaWF0aW9uU2V0dGluZ3MoQ1NTUHJvcGVydHlGb250VmFyaWF0aW9uU2V0dGluZ3MsICZSZW5k
ZXJTdHlsZTo6Zm9udFZhcmlhdGlvblNldHRpbmdzLCAmUmVuZGVyU3R5bGU6OnNldEZvbnRWYXJp
YXRpb25TZXR0aW5ncyksCiAgICAgfTsKICAgICBjb25zdCB1bnNpZ25lZCBhbmltYXRhYmxlTG9u
Z2hhbmRQcm9wZXJ0aWVzQ291bnQgPSBXVEZfQVJSQVlfTEVOR1RIKGFuaW1hdGFibGVMb25naGFu
ZFByb3BlcnR5V3JhcHBlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAppbmRleCA4ZjVkZjYwLi45NGVjMGFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE1NTAsNiArMTU1MCwx
NiBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRGb250U2l6ZShmbG9hdCBzaXplKQogICAgIGZvbnRD
YXNjYWRlKCkudXBkYXRlKGN1cnJlbnRGb250U2VsZWN0b3IpOwogfQogCit2b2lkIFJlbmRlclN0
eWxlOjpzZXRGb250VmFyaWF0aW9uU2V0dGluZ3MoRm9udFZhcmlhdGlvblNldHRpbmdzIHNldHRp
bmdzKQoreworICAgIEZvbnRTZWxlY3RvciogY3VycmVudEZvbnRTZWxlY3RvciA9IGZvbnRDYXNj
YWRlKCkuZm9udFNlbGVjdG9yKCk7CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IGZvbnREZXNjcmlw
dGlvbigpOworICAgIGRlc2NyaXB0aW9uLnNldFZhcmlhdGlvblNldHRpbmdzKFdURk1vdmUoc2V0
dGluZ3MpKTsKKworICAgIHNldEZvbnREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgZm9u
dENhc2NhZGUoKS51cGRhdGUoY3VycmVudEZvbnRTZWxlY3Rvcik7Cit9CisKIHZvaWQgUmVuZGVy
U3R5bGU6OmdldFNoYWRvd0V4dGVudChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIExheW91dFVu
aXQgJnRvcCwgTGF5b3V0VW5pdCAmcmlnaHQsIExheW91dFVuaXQgJmJvdHRvbSwgTGF5b3V0VW5p
dCAmbGVmdCkgY29uc3QKIHsKICAgICB0b3AgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAyMWRkNWJiLi5hYjk2Njc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzE5LDYgKzcxOSw3
IEBAIHB1YmxpYzoKICAgICBmbG9hdCBzcGVjaWZpZWRGb250U2l6ZSgpIGNvbnN0OwogICAgIGZs
b2F0IGNvbXB1dGVkRm9udFNpemUoKSBjb25zdDsKICAgICBpbnQgZm9udFNpemUoKSBjb25zdDsK
KyAgICBGb250VmFyaWF0aW9uU2V0dGluZ3MgZm9udFZhcmlhdGlvblNldHRpbmdzKCkgY29uc3Qg
eyByZXR1cm4gZm9udERlc2NyaXB0aW9uKCkudmFyaWF0aW9uU2V0dGluZ3MoKTsgfQogICAgIHN0
ZDo6cGFpcjxGb250T3JpZW50YXRpb24sIE5vbkNKS0dseXBoT3JpZW50YXRpb24+IGZvbnRBbmRH
bHlwaE9yaWVudGF0aW9uKCk7CiAKICAgICBjb25zdCBMZW5ndGgmIHRleHRJbmRlbnQoKSBjb25z
dCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50OyB9CkBAIC0xMzY3LDYgKzEzNjgs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRGb250RGVzY3JpcHRpb24oY29uc3QgRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbiYpOwogICAgIC8vIE9ubHkgdXNlZCBmb3IgYmxlbmRpbmcgZm9udCBzaXpl
cyB3aGVuIGFuaW1hdGluZywgZm9yIE1hdGhNTCBhbm9ueW1vdXMgYmxvY2tzLCBhbmQgZm9yIHRl
eHQgYXV0b3NpemluZy4KICAgICB2b2lkIHNldEZvbnRTaXplKGZsb2F0KTsKKyAgICB2b2lkIHNl
dEZvbnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9uU2V0dGluZ3MpOwogCiAgICAgdm9p
ZCBzZXRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZvaWQgc2V0VGV4dEluZGVudChMZW5ndGgg
bGVuZ3RoKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwgV1RGTW92ZShsZW5n
dGgpKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290398</attachid>
            <date>2016-09-30 15:15:26 -0700</date>
            <delta_ts>2016-09-30 15:43:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162783-20160930151222.patch</filename>
            <type>text/plain</type>
            <size>18918</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Njc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2ZWQ0MThiYmRkZWE1
NzZjZjUxYTVmYWRiZWY5Yjk0ZTkzZDFlOS4uMzdiOGFmOWY2YjIwMjQ1OGVmZTUyNDMwMTRkOTEx
Y2E2N2MxZGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE2LTA5LTMwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgSW1wbGVtZW50
IGFuaW1hdGlvbiBvZiBmb250LXZhcmlhdGlvbi1zZXR0aW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNzgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IENTU1Byb3BlcnR5QW5pbWF0aW9u
IHRvIHVuZGVyc3RhbmQgRm9udFZhcmlhdGlvblNldHRpbmdzIG9iamVjdHMgYW5kIGhvdworICAg
ICAgICB0byBpbnRlcnBvbGF0ZSB0aGVtLgorCisgICAgICAgIElmIHR3byBGb250VmFyaWF0aW9u
U2V0dGluZ3Mgb2JqZWN0cyBhcmUgdW5saWtlIChtZWFuaW5nIHRoZXkgc3BlY2lmeSBkaWZmZXJl
bnQKKyAgICAgICAgdmFyaWF0aW9uIGF4ZXMpLCBmb3Igbm93IHRoZSBpbnRlcnBvbGF0aW9uIHNp
bXBseSByZXR1cm5zIGFuIGVtcHR5IG9iamVjdC4gVGhpcworICAgICAgICBtaWdodCBjaGFuZ2Ug
aW4gdGhlIGZ1dHVyZSwgYnV0IGZvciBub3csIHRoaXMgaXMgYSByZWFzb25hYmxlIHBsYWNlIHRv
IHN0YXJ0LgorCisgICAgICAgIEJlY2F1c2UgQ1NTUHJvcGVydHlBbmltYXRpb24gaW50ZXJhY3Rz
IHdpdGggUmVuZGVyU3R5bGVzIGluc3RlYWQgb2YKKyAgICAgICAgRm9udERlc2NyaXB0aW9ucywg
dGhpcyBwYXRjaCBhZGRzIGEgdHJhbnNwYXJlbnQgYWNjZXNzb3IgZnJvbSB0aGUgUmVuZGVyU3R5
bGUKKyAgICAgICAgdG8gdGhlIGlubmVyIEZvbnREZXNjcmlwdGlvbi4KKworICAgICAgICBUZXN0
czogYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1vcmRlci5odG1sCisgICAgICAg
ICAgICAgICBhbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLXVubGlrZS5odG1sCisg
ICAgICAgICAgICAgICBhbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdyYXBw
ZXJGb250VmFyaWF0aW9uU2V0dGluZ3M6OlByb3BlcnR5V3JhcHBlckZvbnRWYXJpYXRpb25TZXR0
aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6
OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRG
b250VmFyaWF0aW9uU2V0dGluZ3MpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmZvbnRWYXJpYXRpb25TZXR0
aW5ncyk6CisKKzIwMTYtMDktMzAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KKwogICAgICAgICBQYXJzZSBmb250LXZhcmlhdGlvbi1zZXR0aW5ncwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNzgxCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNw
cAppbmRleCAyZmY2ZWFmOTZkNmNiY2UzNDc1YzlhOTUyNjI4NWJlNjljZmYwM2MyLi4wNzU1YzBk
MGI2ZDI3Y2EzMjcwMmI4NmRhOGZjMTRmNTc2MDhhYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2xpcFBhdGhPcGVyYXRpb24uaCIKICNpbmNs
dWRlICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJJZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIgpAQCAtMzcxLDYg
KzM3MiwyMyBAQCBzdGF0aWMgaW5saW5lIE5pbmVQaWVjZUltYWdlIGJsZW5kRnVuYyhjb25zdCBB
bmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBOaW5lUGllYwogICAgIHJldHVybiBOaW5lUGllY2VJ
bWFnZShuZXdDb250ZW50SW1hZ2UsIGZyb20uaW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZy
b20uYm9yZGVyU2xpY2VzKCksIGZyb20ub3V0c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwg
ZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNl
dHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGb250VmFy
aWF0aW9uU2V0dGluZ3MmIGZyb20sIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgdG8sIGRv
dWJsZSBwcm9ncmVzcykKK3sKKyAgICBpZiAoZnJvbS5zaXplKCkgIT0gdG8uc2l6ZSgpKQorICAg
ICAgICByZXR1cm4gRm9udFZhcmlhdGlvblNldHRpbmdzKCk7CisgICAgRm9udFZhcmlhdGlvblNl
dHRpbmdzIHJlc3VsdDsKKyAgICB1bnNpZ25lZCBzaXplID0gZnJvbS5zaXplKCk7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBhdXRvJiBmcm9tSXRl
bSA9IGZyb20uYXQoaSk7CisgICAgICAgIGF1dG8mIHRvSXRlbSA9IHRvLmF0KGkpOworICAgICAg
ICBpZiAoZnJvbUl0ZW0udGFnKCkgIT0gdG9JdGVtLnRhZygpKQorICAgICAgICAgICAgcmV0dXJu
IEZvbnRWYXJpYXRpb25TZXR0aW5ncygpOworICAgICAgICBmbG9hdCBpbnRlcnBvbGF0ZWQgPSBi
bGVuZEZ1bmMoYW5pbSwgZnJvbUl0ZW0udmFsdWUoKSwgdG9JdGVtLnZhbHVlKCksIHByb2dyZXNz
KTsKKyAgICAgICAgcmVzdWx0Lmluc2VydCh7IGZyb21JdGVtLnRhZygpLCBpbnRlcnBvbGF0ZWQg
fSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGNsYXNzIEFuaW1hdGlvblByb3Bl
cnR5V3JhcHBlckJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlvblByb3Bl
cnR5V3JhcHBlckJhc2UpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTE3LDYg
KzUzNSwyOSBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAorY2xhc3MgUHJvcGVydHlXcmFwcGVyRm9u
dFZhcmlhdGlvblNldHRpbmdzIDogcHVibGljIFByb3BlcnR5V3JhcHBlcjxGb250VmFyaWF0aW9u
U2V0dGluZ3M+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBQ
cm9wZXJ0eVdyYXBwZXJGb250VmFyaWF0aW9uU2V0dGluZ3MoQ1NTUHJvcGVydHlJRCBwcm9wLCBG
b250VmFyaWF0aW9uU2V0dGluZ3MgKFJlbmRlclN0eWxlOjoqZ2V0dGVyKSgpIGNvbnN0LCB2b2lk
IChSZW5kZXJTdHlsZTo6KnNldHRlcikoRm9udFZhcmlhdGlvblNldHRpbmdzKSkKKyAgICAgICAg
OiBQcm9wZXJ0eVdyYXBwZXI8Rm9udFZhcmlhdGlvblNldHRpbmdzPihwcm9wLCBnZXR0ZXIsIHNl
dHRlcikKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUq
IGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
Ly8gSWYgdGhlIHN0eWxlIHBvaW50ZXJzIGFyZSB0aGUgc2FtZSwgZG9uJ3QgYm90aGVyIGRvaW5n
IHRoZSB0ZXN0LgorICAgICAgICAvLyBJZiBlaXRoZXIgaXMgbnVsbCwgcmV0dXJuIGZhbHNlLiBJ
ZiBib3RoIGFyZSBudWxsLCByZXR1cm4gdHJ1ZS4KKyAgICAgICAgaWYgKGEgPT0gYikKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoIWEgfHwgIWIpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiB2YXJp
YXRpb25TZXR0aW5nc0EgPSAoYS0+Km1fZ2V0dGVyKSgpOworICAgICAgICBjb25zdCBGb250VmFy
aWF0aW9uU2V0dGluZ3MmIHZhcmlhdGlvblNldHRpbmdzQiA9IChiLT4qbV9nZXR0ZXIpKCk7Cisg
ICAgICAgIHJldHVybiB2YXJpYXRpb25TZXR0aW5nc0EgPT0gdmFyaWF0aW9uU2V0dGluZ3NCOwor
ICAgIH0KK307CisKICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKIGNsYXNzIFByb3BlcnR5V3JhcHBl
clNoYXBlIDogcHVibGljIFJlZkNvdW50ZWRQcm9wZXJ0eVdyYXBwZXI8U2hhcGVWYWx1ZT4gewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTQzOCw2ICsxNDc5LDcgQEAgQ1NTUHJv
cGVydHlBbmltYXRpb25XcmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXAo
KQogCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8U1ZHTGVuZ3RoPihDU1NQcm9wZXJ0eUJh
c2VsaW5lU2hpZnQsICZSZW5kZXJTdHlsZTo6YmFzZWxpbmVTaGlmdFZhbHVlLCAmUmVuZGVyU3R5
bGU6OnNldEJhc2VsaW5lU2hpZnRWYWx1ZSksCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8
U1ZHTGVuZ3RoPihDU1NQcm9wZXJ0eUtlcm5pbmcsICZSZW5kZXJTdHlsZTo6a2VybmluZywgJlJl
bmRlclN0eWxlOjpzZXRLZXJuaW5nKSwKKyAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckZvbnRW
YXJpYXRpb25TZXR0aW5ncyhDU1NQcm9wZXJ0eUZvbnRWYXJpYXRpb25TZXR0aW5ncywgJlJlbmRl
clN0eWxlOjpmb250VmFyaWF0aW9uU2V0dGluZ3MsICZSZW5kZXJTdHlsZTo6c2V0Rm9udFZhcmlh
dGlvblNldHRpbmdzKSwKICAgICB9OwogICAgIGNvbnN0IHVuc2lnbmVkIGFuaW1hdGFibGVMb25n
aGFuZFByb3BlcnRpZXNDb3VudCA9IFdURl9BUlJBWV9MRU5HVEgoYW5pbWF0YWJsZUxvbmdoYW5k
UHJvcGVydHlXcmFwcGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCmluZGV4IDhmNWRmNjA2ODM4ZGY0YjEzYjA3ZDczYzY5OTk3ZThhYTJk
YjI1NDcuLjk0ZWMwYWUyMmJkMmY1MmI2ZjQ4ZGQ0ZDkxZmVjNmI3ZmVkNWExZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTU1MCw2
ICsxNTUwLDE2IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEZvbnRTaXplKGZsb2F0IHNpemUpCiAg
ICAgZm9udENhc2NhZGUoKS51cGRhdGUoY3VycmVudEZvbnRTZWxlY3Rvcik7CiB9CiAKK3ZvaWQg
UmVuZGVyU3R5bGU6OnNldEZvbnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9uU2V0dGlu
Z3Mgc2V0dGluZ3MpCit7CisgICAgRm9udFNlbGVjdG9yKiBjdXJyZW50Rm9udFNlbGVjdG9yID0g
Zm9udENhc2NhZGUoKS5mb250U2VsZWN0b3IoKTsKKyAgICBhdXRvIGRlc2NyaXB0aW9uID0gZm9u
dERlc2NyaXB0aW9uKCk7CisgICAgZGVzY3JpcHRpb24uc2V0VmFyaWF0aW9uU2V0dGluZ3MoV1RG
TW92ZShzZXR0aW5ncykpOworCisgICAgc2V0Rm9udERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsK
KyAgICBmb250Q2FzY2FkZSgpLnVwZGF0ZShjdXJyZW50Rm9udFNlbGVjdG9yKTsKK30KKwogdm9p
ZCBSZW5kZXJTdHlsZTo6Z2V0U2hhZG93RXh0ZW50KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywg
TGF5b3V0VW5pdCAmdG9wLCBMYXlvdXRVbml0ICZyaWdodCwgTGF5b3V0VW5pdCAmYm90dG9tLCBM
YXlvdXRVbml0ICZsZWZ0KSBjb25zdAogewogICAgIHRvcCA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDIxZGQ1YmJiMzEzYTFmNGRkNDU5
MjQ0NDZkOWJiODY4MGJlMmI1YjAuLmFiOTY2NzY3NWM2ODMxNmNkN2JjYjAwNzFiZjlmYjIxN2I0
MzFjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CkBAIC03MTksNiArNzE5LDcgQEAgcHVibGljOgogICAgIGZsb2F0IHNwZWNpZmllZEZvbnRTaXpl
KCkgY29uc3Q7CiAgICAgZmxvYXQgY29tcHV0ZWRGb250U2l6ZSgpIGNvbnN0OwogICAgIGludCBm
b250U2l6ZSgpIGNvbnN0OworICAgIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBmb250VmFyaWF0aW9u
U2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBmb250RGVzY3JpcHRpb24oKS52YXJpYXRpb25TZXR0
aW5ncygpOyB9CiAgICAgc3RkOjpwYWlyPEZvbnRPcmllbnRhdGlvbiwgTm9uQ0pLR2x5cGhPcmll
bnRhdGlvbj4gZm9udEFuZEdseXBoT3JpZW50YXRpb24oKTsKIAogICAgIGNvbnN0IExlbmd0aCYg
dGV4dEluZGVudCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQ7IH0K
QEAgLTEzNjcsNiArMTM2OCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNldEZvbnREZXNjcmlwdGlv
bihjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJik7CiAgICAgLy8gT25seSB1c2VkIGZvciBi
bGVuZGluZyBmb250IHNpemVzIHdoZW4gYW5pbWF0aW5nLCBmb3IgTWF0aE1MIGFub255bW91cyBi
bG9ja3MsIGFuZCBmb3IgdGV4dCBhdXRvc2l6aW5nLgogICAgIHZvaWQgc2V0Rm9udFNpemUoZmxv
YXQpOworICAgIHZvaWQgc2V0Rm9udFZhcmlhdGlvblNldHRpbmdzKEZvbnRWYXJpYXRpb25TZXR0
aW5ncyk7CiAKICAgICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRU
ZXh0SW5kZW50KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgaW5k
ZW50LCBXVEZNb3ZlKGxlbmd0aCkpOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzc4OGMwMzhhYjllOTUwMGY5MjJhNjZl
NzE0NzIxNWNmZmU3N2QxNC4uOWMyOWUxZGQxYjdkNWQ3MWFlNTJkMzljNjRiZDg3ZWIzZjJmMWNj
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE2LTA5LTMwICBNeWxlcyBDLiBNYXhmaWVsZCAg
PG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgSW1wbGVtZW50IGFuaW1hdGlvbiBvZiBm
b250LXZhcmlhdGlvbi1zZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYyNzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQW5pbWF0aW9uIHRlc3RzIG5lZWQgYSBsaXR0bGUgaW5mcmFzdHJ1Y3R1
cmUgdG8gYmUgYWJsZSB0byB0ZWxsIGlmIHR3byBjb21wdXRlZAorICAgICAgICB2YWx1ZXMgZm9y
IGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGFyZSBlcXVpdmFsZW50LgorCisgICAgICAgICogYW5p
bWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBhbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLW9yZGVyLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGlu
Z3Mtb3JkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9mb250LXZhcmlhdGlv
bi1zZXR0aW5ncy11bmxpa2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0
aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy11bmxpa2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBhbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzOgorICAg
ICAgICAoY29tcGFyZUZvbnRWYXJpYXRpb25TZXR0aW5ncyk6CisgICAgICAgIChnZXRQcm9wZXJ0
eVZhbHVlKToKKyAgICAgICAgKGNvbXBhcmVQcm9wZXJ0eVZhbHVlKToKKworMjAxNi0wOS0zMCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCiAgICAgICAgIFBhcnNl
IGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI3ODEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc4MmUyMzkyOGE0YWM0NTYzNGFjYjQyZWIxZmYwZTg5ZTBlYmYzNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRWYXJpYXRpb25Gb250c0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iZm9udDogMTAwcHggJ1NraWEnOyBmb250LXZhcmlh
dGlvbi1zZXR0aW5nczogJ3dnaHQnIDIuMyI+SGVsbG88L2Rpdj4KKzxkaXY+UEFTUyAtICJmb250
LXZhcmlhdGlvbi1zZXR0aW5ncyIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAnd2dodCcgMC45NTxicj4KK1BBU1MgLSAiZm9udC12YXJp
YXRpb24tc2V0dGluZ3MiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDFzIHNhdyBzb21l
dGhpbmcgY2xvc2UgdG86ICd3Z2h0JyAxLjQ8YnI+CitQQVNTIC0gImZvbnQtdmFyaWF0aW9uLXNl
dHRpbmdzIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAycyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAnd2dodCcgMi4zPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZh
cmlhdGlvbi1zZXR0aW5ncy1vcmRlci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy1vcmRlci1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyOTkzZDFjMjhjMTZkYjBjOGVkYmUyNjZmZDcwMmJmMjk1YmRmNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzLW9y
ZGVyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRWYXJpYXRpb25Gb250c0VuYWJsZWQodHJ1ZSk7Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iZm9udDogMTAwcHggJ1NraWEnOyBmb250
LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDIuMywgJ3dkdGgnIDEuMSI+SGVsbG88L2Rpdj4K
KzxkaXY+UEFTUyAtICJmb250LXZhcmlhdGlvbi1zZXR0aW5ncyIgcHJvcGVydHkgZm9yICJib3gi
IGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAnd2dodCcgMC45NSwgJ3dk
dGgnIDAuOTU8YnI+CitQQVNTIC0gImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiBwcm9wZXJ0eSBm
b3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAnd2dodCcgMS40
LCAnd2R0aCcgMTxicj4KK1BBU1MgLSAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiIHByb3BlcnR5
IGZvciAiYm94IiBlbGVtZW50IGF0IDJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86ICd3Z2h0JyAy
LjMsICd3ZHRoJyAxLjE8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3Mtb3JkZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3Mtb3JkZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZTNiMzEyOTMxNjE3MGQ3ODY3MjUwMjMyZDI1MzYwZTJkNDAwZjY2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0
aW5ncy1vcmRlci5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFZhcmlhdGlvbkZvbnRzRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3Nj
cmlwdD4KKzxzdHlsZT4KK0BrZXlmcmFtZXMgIndlaWdodEFuaW1hdGlvbiIgeworICAgIGZyb20g
eworICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogIndnaHQiIDAuNSwgIndkdGgiIDAu
OTsKKyAgICB9CisgICAgdG8geworICAgICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogIndk
dGgiIDEuMiwgIndnaHQiIDMuMjsKKyAgICB9Cit9CisKKyNib3ggeworICAgIGZvbnQ6IDEwMHB4
ICJTa2lhIjsKKyAgICBhbmltYXRpb24tbmFtZTogIndlaWdodEFuaW1hdGlvbiI7CisgICAgYW5p
bWF0aW9uLWR1cmF0aW9uOiAzczsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5l
YXI7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJib3giPkhlbGxvPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBleHBlY3RlZFZhbHVl
cyA9IFsKKyAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5
LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgIFsid2VpZ2h0QW5pbWF0aW9uIiwgMC41
LCAiYm94IiwgImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiwgIid3Z2h0JyAwLjk1LCAnd2R0aCcg
MC45NSIsIDAuMDVdLAorICAgIFsid2VpZ2h0QW5pbWF0aW9uIiwgMS4wLCAiYm94IiwgImZvbnQt
dmFyaWF0aW9uLXNldHRpbmdzIiwgIid3Z2h0JyAxLjQsICd3ZHRoJyAxIiwgMC4wNV0sCisgICAg
WyJ3ZWlnaHRBbmltYXRpb24iLCAyLjAsICJib3giLCAiZm9udC12YXJpYXRpb24tc2V0dGluZ3Mi
LCAiJ3dnaHQnIDIuMywgJ3dkdGgnIDEuMSIsIDAuMDVdLAorXTsKK3J1bkFuaW1hdGlvblRlc3Qo
ZXhwZWN0ZWRWYWx1ZXMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUsIHVu
ZGVmaW5lZCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtdmFyaWF0
aW9uLXNldHRpbmdzLXVubGlrZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy11bmxpa2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMjkxNTFhMTcwMDU0OWE5YWZjNDI3ZWU0NmRlZDE3ZGI1MjBlMzFmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy11bmxp
a2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFZhcmlhdGlvbkZvbnRzRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJmb250OiAxMDBweCAnU2tpYSc7Ij5IZWxs
bzwvZGl2PgorPGRpdj5QQVNTIC0gImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIiBwcm9wZXJ0eSBm
b3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IG5vcm1hbDxi
cj4KK1BBU1MgLSAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiIHByb3BlcnR5IGZvciAiYm94IiBl
bGVtZW50IGF0IDFzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IG5vcm1hbDxicj4KK1BBU1MgLSAi
Zm9udC12YXJpYXRpb24tc2V0dGluZ3MiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDJz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IG5vcm1hbDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5n
cy11bmxpa2UuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZm9udC12YXJpYXRpb24tc2V0
dGluZ3MtdW5saWtlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM2MTA0NmNmMDQ1MGY4NTIwNTk4OTQwZmY0
NTVhZTg5MGFkMjVkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
Zm9udC12YXJpYXRpb24tc2V0dGluZ3MtdW5saWtlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VmFyaWF0aW9uRm9udHNFbmFi
bGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10
ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQGtleWZyYW1lcyAid2VpZ2h0QW5p
bWF0aW9uIiB7CisgICAgZnJvbSB7CisgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAi
d2dodCIgMC41LCAid2R0aCIgMC45OworICAgIH0KKyAgICB0byB7CisgICAgICAgIGZvbnQtdmFy
aWF0aW9uLXNldHRpbmdzOiAid2dodCIgMy4yOworICAgIH0KK30KKworI2JveCB7CisgICAgZm9u
dDogMTAwcHggIlNraWEiOworICAgIGFuaW1hdGlvbi1uYW1lOiAid2VpZ2h0QW5pbWF0aW9uIjsK
KyAgICBhbmltYXRpb24tZHVyYXRpb246IDNzOworICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rp
b246IGxpbmVhcjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCI+
SGVsbG88L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGV4cGVj
dGVkVmFsdWVzID0gWworICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwg
cHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgWyJ3ZWlnaHRBbmltYXRp
b24iLCAwLjUsICJib3giLCAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCAibm9ybWFsIiwgMC4w
NV0sCisgICAgWyJ3ZWlnaHRBbmltYXRpb24iLCAxLjAsICJib3giLCAiZm9udC12YXJpYXRpb24t
c2V0dGluZ3MiLCAibm9ybWFsIiwgMC4wNV0sCisgICAgWyJ3ZWlnaHRBbmltYXRpb24iLCAyLjAs
ICJib3giLCAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCAibm9ybWFsIiwgMC4wNV0sCitdOwor
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdHJ1ZSwgdW5kZWZpbmVkKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3MuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvZm9udC12YXJpYXRpb24tc2V0dGluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTdhMjllMTg3MDUx
YzQzY2ZlN2YwNDY0ZmM1OTk2OGFhYWQ1YjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9mb250LXZhcmlhdGlvbi1zZXR0aW5ncy5odG1sCkBAIC0wLDAgKzEsNDQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFZhcmlhdGlvbkZv
bnRzRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VmFyaWF0aW9uRm9udHNFbmFi
bGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10
ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQGtleWZyYW1lcyAid2VpZ2h0QW5p
bWF0aW9uIiB7CisgICAgZnJvbSB7CisgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAi
d2dodCIgMC41OworICAgIH0KKyAgICB0byB7CisgICAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRp
bmdzOiAid2dodCIgMy4yOworICAgIH0KK30KKworI2JveCB7CisgICAgZm9udDogMTAwcHggIlNr
aWEiOworICAgIGFuaW1hdGlvbi1uYW1lOiAid2VpZ2h0QW5pbWF0aW9uIjsKKyAgICBhbmltYXRp
b24tZHVyYXRpb246IDNzOworICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCI+SGVsbG88L2Rpdj4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGV4cGVjdGVkVmFsdWVzID0g
WworICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4
cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgWyJ3ZWlnaHRBbmltYXRpb24iLCAwLjUsICJi
b3giLCAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCAiJ3dnaHQnIDAuOTUiLCAwLjA1XSwKKyAg
ICBbIndlaWdodEFuaW1hdGlvbiIsIDEuMCwgImJveCIsICJmb250LXZhcmlhdGlvbi1zZXR0aW5n
cyIsICInd2dodCcgMS40IiwgMC4wNV0sCisgICAgWyJ3ZWlnaHRBbmltYXRpb24iLCAyLjAsICJi
b3giLCAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiLCAiJ3dnaHQnIDIuMyIsIDAuMDVdLAorXTsK
K3J1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIHRydWUsIHVuZGVmaW5lZCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcwppbmRleCAyMDQx
YzcwNDA4ZTQ4M2UzMGUwOTYwZDc0NjA0NGEzMTk3MmMyNzc2Li43NDMxMjdmMTJjYWUxZjExYWQ2
MDAyNjkwNDFhMDQ0YTQ4MjQ2MzM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKQEAgLTI1OCw2ICsy
NTgsMjkgQEAgZnVuY3Rpb24gY29tcGFyZUNTU0ltYWdlcyhjb21wdXRlZFZhbHVlLCBleHBlY3Rl
ZFZhbHVlLCB0b2xlcmFuY2UpCiAgICAgfQogfQogCitmdW5jdGlvbiBjb21wYXJlRm9udFZhcmlh
dGlvblNldHRpbmdzKGNvbXB1dGVkVmFsdWUsIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSkKK3sK
KyAgICBpZiAoY29tcHV0ZWRWYWx1ZSA9PSAibm9ybWFsIiB8fCBleHBlY3RlZFZhbHVlID09ICJu
b3JtYWwiKQorICAgICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZSA9PSBleHBlY3RlZFZhbHVlOwor
ICAgIHZhciBjb21wdXRlZCA9IGNvbXB1dGVkVmFsdWUuc3BsaXQoIiwgIik7CisgICAgdmFyIGV4
cGVjdGVkID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgiLCAiKTsKKyAgICBpZiAoY29tcHV0ZWQubGVu
Z3RoICE9IGV4cGVjdGVkLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgY29tcHV0ZWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGNvbXB1
dGVkUGllY2VzID0gY29tcHV0ZWRbaV0uc3BsaXQoIiAiKTsKKyAgICAgICAgdmFyIGV4cGVjdGVk
UGllY2VzID0gZXhwZWN0ZWRbaV0uc3BsaXQoIiAiKTsKKyAgICAgICAgaWYgKGNvbXB1dGVkUGll
Y2VzLmxlbmd0aCAhPSAyIHx8IGV4cGVjdGVkUGllY2VzLmxlbmd0aCAhPSAyKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoY29tcHV0ZWRQaWVjZXNbMF0gIT0gZXhwZWN0
ZWRQaWVjZXNbMF0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHZhciBjb21w
dXRlZE51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KGNvbXB1dGVkUGllY2VzWzFdKTsKKyAgICAg
ICAgdmFyIGV4cGVjdGVkTnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQoZXhwZWN0ZWRQaWVjZXNb
MV0pOworICAgICAgICBpZiAoTWF0aC5hYnMoY29tcHV0ZWROdW1iZXIgLSBleHBlY3RlZE51bWJl
cikgPiB0b2xlcmFuY2UpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCiAvLyBDYWxsZWQgYnkgQ1NTIEltYWdlIGZ1bmN0aW9uIGZpbHRlcigp
IGFzIHdlbGwgYXMgZmlsdGVyIHByb3BlcnR5LgogZnVuY3Rpb24gY29tcGFyZUZpbHRlckZ1bmN0
aW9ucyhjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpCiB7CkBAIC00MDEs
NiArNDI0LDcgQEAgZnVuY3Rpb24gZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwgZWxlbWVudElk
LCBpZnJhbWVJZCkKICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRDbGlwUGF0
aCIKICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRTaGFwZUluc2lkZSIKICAg
ICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRTaGFwZU91dHNpZGUiCisgICAgICAg
ICAgICAgICB8fCBwcm9wZXJ0eSA9PSAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiCiAgICAgICAg
ICAgICAgICB8fCAhcHJvcGVydHkuaW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikKICAgICAgICAg
ICAgICAgIHx8ICFwcm9wZXJ0eS5pbmRleE9mKCJ0cmFuc2Zvcm0iKSkgewogICAgICAgICBjb21w
dXRlZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudClbcHJvcGVydHkuc3Bs
aXQoIi4iKVswXV07CkBAIC00NDYsOSArNDcwLDEwIEBAIGZ1bmN0aW9uIGNvbXBhcmVQcm9wZXJ0
eVZhbHVlKHByb3BlcnR5LCBjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2Up
CiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0TWFza0ltYWdlIgogICAgICAg
ICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdE1hc2tCb3hJbWFnZSIpCiAgICAgICAgIHJl
c3VsdCA9IGNvbXBhcmVDU1NJbWFnZXMoY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9s
ZXJhbmNlKTsKLSAgICBlbHNlIHsKKyAgICBlbHNlIGlmIChwcm9wZXJ0eSA9PSAiZm9udC12YXJp
YXRpb24tc2V0dGluZ3MiKQorICAgICAgICByZXN1bHQgPSBjb21wYXJlRm9udFZhcmlhdGlvblNl
dHRpbmdzKGNvbXB1dGVkVmFsdWUsIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7CisgICAgZWxz
ZQogICAgICAgICByZXN1bHQgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUsIGV4cGVjdGVk
VmFsdWUsIHRvbGVyYW5jZSk7Ci0gICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
</data>
<flag name="review"
          id="313591"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>