html2doc 1.4.2.1 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c9737d99ed7f4eaa814bd07e97e5b11b54f1f27a07c628b97e21216b9a3a816
4
- data.tar.gz: 7778c03a49a8223a873f139fda9722a451700d6c39df1003dde40bf8cb8e6bfb
3
+ metadata.gz: '0519bc0cdea11bd73e5ef3c07236793fc46ade0f08e7c36258e8fe0918808907'
4
+ data.tar.gz: 919f5ee2632c524b30a72f5eb9f1c647c386eda1946aab89ea7f74e603e90aa1
5
5
  SHA512:
6
- metadata.gz: b9b0479132c6115e69449fec5797c3e30007790940c9530f59cb74c5bf8598f1d01b6c180c42a9bc87880c86636cf9719f4e704036f2afe8adb264312867d1eb
7
- data.tar.gz: 616429b25b5cd9d59db066f5085fb19a5d79d308d38cb0f4360ec66e85a3dc1163d5707de433155226e72cb86b065dbe03e9e07c9f1eb6dae66300a0169846e5
6
+ metadata.gz: 1c3c6b592ebff133758628ef1cd664a9c7e13390bd63551026c785992f0c6ae770d7593aa5052477e1aa08fedd033d749056857a9bb73b1e5babd4aa2e657ff4
7
+ data.tar.gz: 907db4fb0ae7c64168c5b8436b1d2162591f05d9785928cb393d5e7ea4e7fddc086c96534a81e5d3f42df1c048df5c00b313e08f96dbb91a88b0dd95d3ee6774
data/html2doc.gemspec CHANGED
@@ -20,9 +20,11 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.bindir = "bin"
22
22
  spec.require_paths = ["lib"]
23
- spec.files = `git ls-files`.split("\n")
24
- spec.test_files = `git ls-files -- {spec}/*`.split("\n")
25
- spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
23
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
24
+ f.match(%r{^(test|spec|features|bin|.github)/}) \
25
+ || f.match(%r{Rakefile|bin/rspec})
26
+ end
27
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
26
28
 
27
29
  spec.add_dependency "asciimath", "~> 2.0.2"
28
30
  spec.add_dependency "htmlentities", "~> 4.3.4"
data/lib/html2doc/base.rb CHANGED
@@ -15,6 +15,7 @@ class Html2Doc
15
15
  @debug = hash[:debug]
16
16
  @liststyles = hash[:liststyles]
17
17
  @stylesheet = hash[:stylesheet]
18
+ @c = HTMLEntities.new
18
19
  @xsltemplate =
19
20
  Nokogiri::XSLT(File.read(File.join(File.dirname(__FILE__), "mml2omml.xsl"),
20
21
  encoding: "utf-8"))
@@ -49,7 +50,7 @@ class Html2Doc
49
50
  def create_dir(filename, dir)
50
51
  dir and return clear_dir(dir)
51
52
  dir = "#{filename}_files"
52
- Dir.mkdir(dir) unless File.exists?(dir)
53
+ FileUtils.mkdir_p(dir)
53
54
  clear_dir(dir)
54
55
  end
55
56
 
data/lib/html2doc/math.rb CHANGED
@@ -5,24 +5,26 @@ require "nokogiri"
5
5
  require "plane1converter"
6
6
 
7
7
  class Html2Doc
8
- def asciimath_to_mathml1(expr)
9
- AsciiMath::MathMLBuilder.new(msword: true).append_expression(
10
- AsciiMath.parse(HTMLEntities.new.decode(expr)).ast,
11
- ).to_s
12
- .gsub(/<math>/, "<math xmlns='http://www.w3.org/1998/Math/MathML'>")
8
+ def asciimath_to_mathml1(expr, retain_asciimath)
9
+ ret = AsciiMath::MathMLBuilder.new(msword: true).append_expression(
10
+ AsciiMath.parse(@c.decode(expr)).ast,
11
+ ).to_s.gsub(/<math>/, "<math xmlns='http://www.w3.org/1998/Math/MathML'>")
12
+ retain_asciimath and
13
+ ret += "<asciimath>#{@c.encode(@c.decode(expr), :basic)}</asciimath>"
14
+ ret
13
15
  rescue StandardError => e
14
16
  puts "parsing: #{expr}"
15
17
  puts e.message
16
18
  raise e
17
19
  end
18
20
 
19
- def asciimath_to_mathml(doc, delims)
21
+ def asciimath_to_mathml(doc, delims, retain_asciimath: false)
20
22
  return doc if delims.nil? || delims.size < 2
21
23
 
22
24
  m = doc.split(/(#{Regexp.escape(delims[0])}|#{Regexp.escape(delims[1])})/)
23
25
  m.each_slice(4).map.with_index do |(*a), i|
24
26
  progress_conv(i, 500, (m.size / 4).floor, 1000, "AsciiMath")
25
- a[2].nil? || a[2] = asciimath_to_mathml1(a[2])
27
+ a[2].nil? or a[2] = asciimath_to_mathml1(a[2], retain_asciimath)
26
28
  a.size > 1 ? a[0] + a[2] : a[0]
27
29
  end.join
28
30
  end
@@ -122,7 +124,7 @@ class Html2Doc
122
124
  xml.traverse do |n|
123
125
  next unless n.text?
124
126
 
125
- n.replace(Plane1Converter.conv(HTMLEntities.new.decode(n.text), font))
127
+ n.replace(Plane1Converter.conv(@c.decode(n.text), font))
126
128
  end
127
129
  xml
128
130
  end
data/lib/html2doc/mime.rb CHANGED
@@ -67,22 +67,23 @@ class Html2Doc
67
67
  end
68
68
 
69
69
  def contentid(mhtml)
70
- mhtml.gsub %r{(<img[^>]*?src=")([^\"']+)(['"])}m do |m|
70
+ mhtml.gsub %r{(<img[^>]*?src=")([^"']+)(['"])}m do |m|
71
71
  repl = "#{$1}cid:#{File.basename($2)}#{$3}"
72
- /^data:|^https?:/.match($2) ? m : repl
73
- end.gsub %r{(<v:imagedata[^>]*?src=")([^\"']+)(['"])}m do |m|
72
+ /^data:|^https?:/ =~ $2 ? m : repl
73
+ end.gsub %r{(<v:imagedata[^>]*?src=")([^"']+)(['"])}m do |m|
74
74
  repl = "#{$1}cid:#{File.basename($2)}#{$3}"
75
- /^data:|^https?:/.match($2) ? m : repl
75
+ /^data:|^https?:/ =~ $2 ? m : repl
76
76
  end
77
77
  end
78
78
 
79
79
  # max width for Word document is 400, max height is 680
80
80
  def image_resize(img, path, maxheight, maxwidth)
81
- realsize = ImageSize.path(path).size
82
- s = [img["width"].to_i, img["height"].to_i]
83
- s = realsize if s[0].zero? && s[1].zero?
84
- return [nil, nil] if realsize.nil? || realsize[0].nil? || realsize[1].nil?
81
+ s, realsize = get_image_size(img, path)
82
+ return s if s[0] == nil && s[1] == nil
85
83
 
84
+ if img.name == "svg" && !img["viewBox"]
85
+ img["viewBox"] = "0 0 #{s[0]} #{s[1]}"
86
+ end
86
87
  s[1] = s[0] * realsize[1] / realsize[0] if s[1].zero? && !s[0].zero?
87
88
  s[0] = s[1] * realsize[0] / realsize[1] if s[0].zero? && !s[1].zero?
88
89
  s = [(s[0] * maxheight / s[1]).ceil, maxheight] if s[1] > maxheight
@@ -90,6 +91,16 @@ class Html2Doc
90
91
  s
91
92
  end
92
93
 
94
+ def get_image_size(img, path)
95
+ realsize = ImageSize.path(path).size # does not support emf
96
+ s = [img["width"].to_i, img["height"].to_i]
97
+ return [s, s] if /\.emf$/.match?(path)
98
+
99
+ s = realsize if s[0].zero? && s[1].zero?
100
+ s = [nil, nil] if realsize.nil? || realsize[0].nil? || realsize[1].nil?
101
+ [s, realsize]
102
+ end
103
+
93
104
  IMAGE_PATH = "//*[local-name() = 'img' or local-name() = 'imagedata']".freeze
94
105
 
95
106
  def mkuuid
@@ -1,3 +1,3 @@
1
1
  class Html2Doc
2
- VERSION = "1.4.2.1".freeze
2
+ VERSION = "1.4.4".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html2doc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2.1
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-04 00:00:00.000000000 Z
11
+ date: 2022-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciimath
@@ -273,7 +273,6 @@ extensions: []
273
273
  extra_rdoc_files: []
274
274
  files:
275
275
  - ".gitattributes"
276
- - ".github/workflows/rake.yml"
277
276
  - ".gitignore"
278
277
  - ".hound.yml"
279
278
  - ".oss-guides.rubocop.yml"
@@ -283,11 +282,6 @@ files:
283
282
  - Gemfile
284
283
  - LICENSE
285
284
  - README.adoc
286
- - Rakefile
287
- - bin/console
288
- - bin/html2doc
289
- - bin/rspec
290
- - bin/setup
291
285
  - html2doc.gemspec
292
286
  - lib/html2doc.rb
293
287
  - lib/html2doc/base.rb
@@ -298,28 +292,12 @@ files:
298
292
  - lib/html2doc/notes.rb
299
293
  - lib/html2doc/version.rb
300
294
  - lib/html2doc/wordstyle.css
301
- - spec/19160-6.png
302
- - spec/19160-7.gif
303
- - spec/19160-8.jpg
304
- - spec/examples/header.html
305
- - spec/examples/rice.doc
306
- - spec/examples/rice.html
307
- - spec/examples/rice_images/rice_image1.gif
308
- - spec/examples/rice_images/rice_image1.png
309
- - spec/examples/rice_images/rice_image2.png
310
- - spec/examples/rice_images/rice_image3_1.png
311
- - spec/examples/rice_images/rice_image3_2.png
312
- - spec/examples/rice_images/rice_image3_3.png
313
- - spec/header.html
314
- - spec/header_img.html
315
- - spec/html2doc_spec.rb
316
- - spec/spec_helper.rb
317
295
  homepage: https://github.com/metanorma/html2doc
318
296
  licenses:
319
297
  - CC-BY-SA-3.0
320
298
  - BSD-2-Clause
321
299
  metadata: {}
322
- post_install_message:
300
+ post_install_message:
323
301
  rdoc_options: []
324
302
  require_paths:
325
303
  - lib
@@ -327,15 +305,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
305
  requirements:
328
306
  - - ">="
329
307
  - !ruby/object:Gem::Version
330
- version: 2.5.0
308
+ version: 2.7.0
331
309
  required_rubygems_version: !ruby/object:Gem::Requirement
332
310
  requirements:
333
311
  - - ">="
334
312
  - !ruby/object:Gem::Version
335
313
  version: '0'
336
314
  requirements: []
337
- rubygems_version: 3.3.16
338
- signing_key:
315
+ rubygems_version: 3.1.6
316
+ signing_key:
339
317
  specification_version: 4
340
318
  summary: Convert HTML document to Microsoft Word document
341
319
  test_files: []
@@ -1,15 +0,0 @@
1
- # Auto-generated by Cimas: Do not edit it manually!
2
- # See https://github.com/metanorma/cimas
3
- name: rake
4
-
5
- on:
6
- push:
7
- branches: [ master, main ]
8
- tags: [ v* ]
9
- pull_request:
10
-
11
- jobs:
12
- rake:
13
- uses: metanorma/metanorma-build-scripts/.github/workflows/generic-rake.yml@main
14
- secrets:
15
- pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task default: :spec
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "html2doc"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/html2doc DELETED
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "html2doc"
4
- require "optparse"
5
-
6
- options = {}
7
- OptionParser.new do |opts|
8
- opts.banner = "Usage: bin/html2doc filename [options]"
9
-
10
- opts.on("--stylesheet FILE.CSS", "Use the provided stylesheet") do |v|
11
- options[:stylesheet] = v
12
- end
13
- opts.on("--header HEADER.HTML", "Use the provided stylesheet") do |v|
14
- options[:header] = v
15
- end
16
- end.parse!
17
-
18
- if ARGV.length < 1
19
- puts "Usage: bin/html2doc filename [options]"
20
- exit
21
- end
22
-
23
- Html2Doc.process(
24
- filename: ARGV[0].gsub(/\.html?$/, ""),
25
- stylesheet: options[:stylesheet],
26
- header: options[:header],
27
- ).process(File.read(ARGV[0], encoding: "utf-8"))
data/bin/rspec DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # This file was generated by Bundler.
4
- #
5
- # The application 'rspec' is installed as part of a gem, and
6
- # this file is here to facilitate running it.
7
- #
8
-
9
- require "pathname"
10
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path(
11
- "../../Gemfile", Pathname.new(__FILE__).realpath
12
- )
13
-
14
- require "rubygems"
15
- require "bundler/setup"
16
-
17
- load Gem.bin_path("rspec-core", "rspec")
18
-
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
data/spec/19160-6.png DELETED
Binary file
data/spec/19160-7.gif DELETED
Binary file
data/spec/19160-8.jpg DELETED
Binary file
@@ -1,184 +0,0 @@
1
- <html xmlns:v="urn:schemas-microsoft-com:vml"
2
- xmlns:o="urn:schemas-microsoft-com:office:office"
3
- xmlns:w="urn:schemas-microsoft-com:office:word"
4
- xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
5
- xmlns:mv="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
6
-
7
- <head>
8
- <meta name=Title content="">
9
- <meta name=Keywords content="">
10
- <meta http-equiv=Content-Type content="text/html; charset=utf-8">
11
- <meta name=ProgId content=Word.Document>
12
- <meta name=Generator content="Microsoft Word 15">
13
- <meta name=Originator content="Microsoft Word 15">
14
- <link id=Main-File rel=Main-File href="../rice.html">
15
- <!--[if gte mso 9]><xml>
16
- <o:shapedefaults v:ext="edit" spidmax="2049"/>
17
- </xml><![endif]-->
18
- </head>
19
-
20
- <body lang=EN link=blue vlink="#954F72">
21
-
22
- <div style='mso-element:footnote-separator' id=fs>
23
-
24
- <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
25
- normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
26
-
27
- <hr align=left size=1 width="33%">
28
-
29
- <![endif]></span></span></p>
30
-
31
- </div>
32
-
33
- <div style='mso-element:footnote-continuation-separator' id=fcs>
34
-
35
- <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
36
- normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
37
-
38
- <hr align=left size=1>
39
-
40
- <![endif]></span></span></p>
41
-
42
- </div>
43
-
44
- <div style='mso-element:endnote-separator' id=es>
45
-
46
- <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
47
- normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
48
-
49
- <hr align=left size=1 width="33%">
50
-
51
- <![endif]></span></span></p>
52
-
53
- </div>
54
-
55
- <div style='mso-element:endnote-continuation-separator' id=ecs>
56
-
57
- <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
58
- normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
59
-
60
- <hr align=left size=1>
61
-
62
- <![endif]></span></span></p>
63
-
64
- </div>
65
-
66
- <div style='mso-element:header' id=eh1>
67
-
68
- <p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
69
- mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC&nbsp;CD 17301-1:2016(E)</span></p>
70
-
71
- </div>
72
-
73
- <div style='mso-element:header' id=h1>
74
-
75
- <p class=MsoHeader style='margin-bottom:18.0pt'><span lang=EN-GB
76
- style='font-size:10.0pt;mso-bidi-font-size:11.0pt;font-weight:normal'>©
77
- ISO/IEC&nbsp;2016&nbsp;– All rights reserved</span><span lang=EN-GB
78
- style='font-weight:normal'><o:p></o:p></span></p>
79
-
80
- </div>
81
-
82
- <div style='mso-element:footer' id=ef1>
83
-
84
- <p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
85
- exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
86
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
87
- style='mso-element:field-begin'></span><span
88
- style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
89
- </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
90
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
91
- mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
92
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
93
- mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
94
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
95
- style='mso-tab-count:1'>                                                                                                                                                                           </span>©
96
- ISO/IEC&nbsp;2016&nbsp;– All rights reserved<o:p></o:p></span></p>
97
-
98
- </div>
99
-
100
- <div style='mso-element:header' id=eh2>
101
-
102
- <p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
103
- mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC&nbsp;CD 17301-1:2016(E)</span></p>
104
-
105
- </div>
106
-
107
- <div style='mso-element:header' id=h2>
108
-
109
- <p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
110
- mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC&nbsp;CD 17301-1:2016(E)</span></p>
111
-
112
- </div>
113
-
114
- <div style='mso-element:footer' id=ef2>
115
-
116
- <p class=MsoFooter style='line-height:12.0pt;mso-line-height-rule:exactly'><!--[if supportFields]><span
117
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
118
- style='mso-element:field-begin'></span><span
119
- style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
120
- </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
121
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
122
- style='mso-no-proof:yes'>ii</span></span><!--[if supportFields]><span
123
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
124
- style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
125
- style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
126
- 1'>                                                                                                                                                                           </span>©
127
- ISO/IEC&nbsp;2016&nbsp;– All rights reserved<o:p></o:p></span></p>
128
-
129
- </div>
130
-
131
- <div style='mso-element:footer' id=f2>
132
-
133
- <p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
134
- style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© ISO/IEC&nbsp;2016&nbsp;– All
135
- rights reserved<span style='mso-tab-count:1'>                                                                                                                                                                          </span></span><!--[if supportFields]><span
136
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
137
- style='mso-element:field-begin'></span> PAGE<span style='mso-spacerun:yes'>  
138
- </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
139
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
140
- style='mso-no-proof:yes'>iii</span></span><!--[if supportFields]><span
141
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
142
- style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
143
- style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
144
-
145
- </div>
146
-
147
- <div style='mso-element:footer' id=ef3>
148
-
149
- <p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
150
- exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
151
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
152
- style='mso-element:field-begin'></span><span
153
- style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
154
- </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
155
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
156
- mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
157
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
158
- mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
159
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
160
- style='mso-tab-count:1'>                                                                                                                                                                           </span>©
161
- ISO/IEC&nbsp;2016&nbsp;– All rights reserved<o:p></o:p></span></p>
162
-
163
- </div>
164
-
165
- <div style='mso-element:footer' id=f3>
166
-
167
- <p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
168
- style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© ISO/IEC&nbsp;2016&nbsp;– All
169
- rights reserved<span style='mso-tab-count:1'>                                                                                                                                                                           </span></span><!--[if supportFields]><b
170
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
171
- mso-bidi-font-size:11.0pt'><span style='mso-element:field-begin'></span>
172
- PAGE<span style='mso-spacerun:yes'>   </span>\* MERGEFORMAT <span
173
- style='mso-element:field-separator'></span></span></b><![endif]--><b
174
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
175
- mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>3</span></span></b><!--[if supportFields]><b
176
- style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
177
- mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
178
- lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
179
-
180
- </div>
181
-
182
- </body>
183
-
184
- </html>