dawnscanner 1.6.3 → 1.6.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33c6d0a08fb962b05e2bbaaef34304fcc515d532
4
- data.tar.gz: d717d82436f1e27eb7b45d6e8a69c9c9123b7361
3
+ metadata.gz: 1770d53c5bcc2080977c8b8f7521992f44476e3d
4
+ data.tar.gz: 88228854cf954cbfc41987386911f8e4a0676f56
5
5
  SHA512:
6
- metadata.gz: 8860de757761b8caee9ae1c72fc6fc20242ad8e4a510e345bc9b444e2e25951bbb5fc2e5fbc9db2bc9ac1bde28f393d45c99fbf23d6ddd7e3509f9681f3f928f
7
- data.tar.gz: 92a9113bb0af039a98f822b6fc74936fb2f581e1a2e4ca7775c7483a6ee68b39c1f543c144d0ac7c12aecd4e07e3c953f3d7bf36211e65836ff48437cc3472d3
6
+ metadata.gz: 2d2178017f290351bd071b625a21ca3459acae8af3d9bd535f53cbd2a16d7fca2bcebfb47c224f14d495257b6f99ee27f304c9c8c407826fcc4a730f5085d284
7
+ data.tar.gz: 73a7d4485773cfb82e8b8a09a5eacd1c985c4d36fc359d86d5a6773f1ebba0be4c01af2927dc398bbec3f0177e44a440daa21ea69b1594434005c73f94e5db82
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,94 @@
1
+ # Contribute to dawnscannerscanner
2
+
3
+ We love pull requests from everyone. By participating in this project, you
4
+ agree to abide by the latest version of the [Contributor Covenant Code of
5
+ Conduct](http://contributor-covenant.org/version/1/4/).
6
+
7
+ Are you still interested in contributing to
8
+ [dawnscanner](https://dawnscanner.org) project? Great, here is some very basic
9
+ rules in order to make rocking pull requests.
10
+
11
+ First of all, I use the branching model described in [this
12
+ post](http://nvie.com/posts/a-successful-git-branching-model/). There are two
13
+ major branches:
14
+
15
+ * master: it contains in every moment the code for the latest dawnscanner
16
+ released gem. You can't make branches from here unless you're working on a
17
+ bugfix.
18
+ * development: it contains the unstable code that is going to be the next
19
+ dawnscanner realease. You start from here. Pick a task on the Roadmap.md
20
+ and create a separated branch to work on your feature to. When you're ready
21
+ (remember to include also spec files), submit your pull request. If the code
22
+ will be fine, it will be merged into the development tree ready to be include
23
+ in upcoming gem version.
24
+
25
+ Create your own copy of the repository, by forking and cloning it with the
26
+ following command:
27
+
28
+ ``` git clone git@github.com:your-username/dawnscanner.git ```
29
+
30
+ You can now work either on implementing a new feature, adding a security check or fixing a bug.
31
+
32
+ ## Implementing a new feature
33
+
34
+ Go on the [Issue
35
+ pane](https://github.com/thesp0nge/dawnscanner/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
36
+ and filter for opened issue marked as enhancement.
37
+
38
+ Now, create a branch, from the **development** branch, named with the issue
39
+ you're working on (e.g. issue_202_false_positive_of_protect_from_forgery).
40
+
41
+ Code, write the necessary tests and document the commit with the issue number
42
+ in the commit message and some description about you solved the enhancement.
43
+
44
+ Please don't forget to edit also Changelog file.
45
+
46
+ Then push to your fork and create [a pull
47
+ request](https://github.com/thesp0nge/dawnscanner/compare/).
48
+
49
+ ## Adding a security check
50
+
51
+ If you want to add a new CVE bulletin or a new security check, than you have to
52
+ open [an issue](https://github.com/thesp0nge/dawnscanner/issues) describing the
53
+ check and assigning to your self.
54
+
55
+ Now, create a branch, from the **master** branch, named with the issue
56
+ you're working on (e.g. issue_202_false_positive_of_protect_from_forgery).
57
+
58
+ You can create a generic security check with the command ```rake check[name]```
59
+ or you can create a new CVE bulletin with ```rake cve[name]```. Please note
60
+ that you will be guided in which files are created and which one you have to
61
+ modify, in order to include the check.
62
+
63
+ You will have to write your check and the relevant rspec file from scratch.
64
+ Than you must include the new class implementing the security check, in the
65
+ tool [knowledge
66
+ base](https://raw.githubusercontent.com/thesp0nge/dawnscanner/master/lib/dawn/knowledge_base.rb),
67
+ adding it also in the [knowledge base rspect
68
+ file](https://raw.githubusercontent.com/thesp0nge/dawnscanner/master/spec/lib/dawn/codesake_knowledgebase_spec.rb).
69
+
70
+ Please don't forget to edit also Changelog file.
71
+
72
+ Then push to your fork and create [a pull
73
+ request](https://github.com/thesp0nge/dawnscanner/compare/).
74
+
75
+ ## Fixing a bug
76
+
77
+ Go on the [Issue
78
+ pane](https://github.com/thesp0nge/dawnscanner/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
79
+ and filter for opened issue marked as bug.
80
+
81
+ Now, create a branch, from the **master** branch, named with the issue
82
+ you're working on (e.g. issue_202_false_positive_of_protect_from_forgery).
83
+
84
+ Code, write the necessary tests and document the commit with the issue number
85
+ in the commit message and some description about you solved the enhancement.
86
+
87
+ Please don't forget to edit also Changelog file.
88
+
89
+ Then push to your fork and create [a pull
90
+ request](https://github.com/thesp0nge/dawnscanner/compare/).
91
+
92
+ Enjoy it!
93
+
94
+ Last update: _Tue Sep 27 22:44:01 CEST 2016_
data/Changelog.md CHANGED
@@ -5,7 +5,12 @@ It supports [Sinatra](http://www.sinatrarb.com),
5
5
  [Padrino](http://www.padrinorb.com) and [Ruby on Rails](http://rubyonrails.org)
6
6
  frameworks.
7
7
 
8
- _latest update: Tue Mar 1 23:11:10 CET 2016_
8
+ _latest update: Tue Sep 27 23:32:32 CEST 2016_
9
+
10
+ ## Version 1.6.4 - codename: Tow Mater (2016-09-27)
11
+
12
+ * Issue #199 - CVE-2015-4020 seems to give the wrong Solution
13
+ * Issue #168 - Dawn fails for many CVEs that rails 3.2.22 is not vulnerable to
9
14
 
10
15
  ## Version 1.6.3 - codename: Tow Mater (2016-09-06)
11
16
 
data/README.md CHANGED
@@ -305,31 +305,10 @@ Thank you.
305
305
 
306
306
  [Matteo](https://github.com/matteocollina): for ideas on API and their usage with [github.com](https://github.com) hooks
307
307
 
308
- ## Contribute to dawnscannerscanner
309
-
310
- Are you interested in contributing to dawnscanner project? Great, here is
311
- some very basic rules in order to make rocking pull requests.
312
-
313
- First of all, I use the branching model described in [this
314
- post](http://nvie.com/posts/a-successful-git-branching-model/). There are two
315
- major branches:
316
-
317
- * master: it contains in every moment the code for the latest dawnscanner
318
- released gem. You can't make branches from here unless you're working on a
319
- bugfix.
320
- * development: it contains the unstable code that is going to be the next
321
- dawnscanner realease. You start from here. Pick a task on the Roadmap.md
322
- and create a separated branch to work on your feature to. When you're ready
323
- (remember to include also spec files), submit your pull request. If the code
324
- will be fine, it will be merged into the development tree ready to be include
325
- in upcoming gem version.
326
-
327
- No branch from master it would be analyzed unless they are related to bugfix.
328
- In this case, the branch name must be something like _issue\_#xx\_description_
329
308
 
330
309
  ## LICENSE
331
310
 
332
- Copyright (c) 2013-2015 Paolo Perego <paolo@dawnscanner.org>
311
+ Copyright (c) 2013-2016 Paolo Perego <paolo@dawnscanner.org>
333
312
 
334
313
  MIT License
335
314
 
data/VERSION CHANGED
@@ -12,4 +12,4 @@
12
12
  # | "Guido" | x.x.0 |
13
13
  # | "Luigi" | x.x.0 |
14
14
  # | "Doc Hudson" | x.x.0 |
15
- 1.6.3 - Tow Mater
15
+ 1.6.4 - Tow Mater
@@ -0,0 +1 @@
1
+ 215029cb2ef08b4eb3196580e5639efbfe35225d
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -22,6 +22,7 @@
22
22
  })
23
23
 
24
24
  self.safe_dependencies = [{:name=>"rails", :version=>['3.2.16', '4.0.2', '3.1.9999', '3.0.9999']}]
25
+ self.save_major = true
25
26
 
26
27
  end
27
28
  end
@@ -20,6 +20,7 @@
20
20
  })
21
21
 
22
22
  self.safe_dependencies = [{:name=>"rails", :version=>['3.2.16', '4.0.2', '3.1.9999', '3.0.9999']}]
23
+ self.save_major = true
23
24
 
24
25
 
25
26
  end
@@ -22,6 +22,7 @@
22
22
 
23
23
  self.safe_dependencies = [{:name=>"rails", :version=>['3.2.16', '4.0.2', '3.1.9999', '3.0.9999']}]
24
24
 
25
+ self.save_major = true
25
26
 
26
27
  end
27
28
  end
@@ -21,6 +21,7 @@
21
21
  :aux_links=>["https://groups.google.com/forum/message/raw?msg=rubyonrails-security/Wu96YkTUR6s/pPLBMZrlwvYJ"]
22
22
  })
23
23
  self.safe_dependencies = [{:name=>"rails", :version=>['4.0.3', '4.1.0.beta2']}]
24
+ self.save_major = true
24
25
 
25
26
  end
26
27
  end
@@ -19,7 +19,8 @@
19
19
  :aux_links=>["https://groups.google.com/forum/message/raw?msg=rubyonrails-security/tfp6gZCtzr4/j8LUHmu7fIEJ"]
20
20
  })
21
21
 
22
- self.safe_dependencies = [{:name=>"rails", :version=>['3.2.17', '4.0.3', '4.1.0.beta2', '3.1.99999', '3.0.99999', '2.99999.99999', '1.99999.99999']}]
22
+ self.safe_dependencies = [{:name=>"rails", :version=>['3.2.17', '4.0.3', '4.1.0.beta2', '3.1.99999', '3.0.99999']}]
23
+ self.save_major = true
23
24
  end
24
25
  end
25
26
  end
@@ -20,6 +20,7 @@
20
20
  })
21
21
  self.safe_dependencies = [{:name=>"rails", :version=>['3.2.18', '4.0.5', '4.1.1']}]
22
22
 
23
+ self.save_major = true
23
24
  end
24
25
  end
25
26
  end
@@ -20,6 +20,7 @@ module Dawn
20
20
  })
21
21
 
22
22
  self.safe_dependencies = [{:name=>"rails", :version=>['3.2.20', '4.0.11', '4.1.7', '4.2.0.beta3']}]
23
+ self.save_major = true
23
24
  end
24
25
  end
25
26
  end
@@ -21,6 +21,7 @@ module Dawn
21
21
  })
22
22
 
23
23
  self.safe_dependencies = [{:name=>"rails", :version=>['3.2.21', '4.0.12', '4.1.8', '4.2.0.beta4']}]
24
+ self.save_major = true
24
25
 
25
26
  end
26
27
  end
@@ -21,6 +21,7 @@ module Dawn
21
21
  })
22
22
  self.save_minor = true
23
23
  self.safe_dependencies = [{:name=>"activesupport", :version=>['4.1.12', '4.2.3']}]
24
+ self.save_major = true
24
25
  end
25
26
  end
26
27
  end
@@ -23,7 +23,7 @@ module Dawn
23
23
  :applies=>["rails", "sinatra", "padrino"],
24
24
  :kind=>Dawn::KnowledgeBase::GEM_CHECK,
25
25
  :message=>message,
26
- :mitigation=>"Please upgrade redcarpet gem to version 3.2.3 or later.",
26
+ :mitigation=>"Please upgrade rubygem to version 3.2.3 or later.",
27
27
  :aux_links=>[""]
28
28
  })
29
29
 
data/lib/dawn/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Dawn
2
- VERSION = "1.6.3"
2
+ VERSION = "1.6.4"
3
3
  CODENAME = "Tow Mater"
4
- RELEASE = "20160906"
5
- BUILD = "15"
6
- COMMIT = "g16d339b"
4
+ RELEASE = "20160927"
5
+ BUILD = "9"
6
+ COMMIT = "gbd3c8ff"
7
7
  end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe "The CVE-2013-6414 vulnerability" do
4
+ before(:all) do
5
+ @check = Dawn::Kb::CVE_2013_6414.new
6
+ # @check.debug = true
7
+ end
8
+ it "is detected if vulnerable version of rails rubygem is detected" do
9
+ @check.dependencies=[{:name=>"rails", :version=>'4.0.1'}]
10
+ expect(@check.vuln?).to eq(true)
11
+ end
12
+ it "is ignored if rails version is 3.2.x" do
13
+ @check.dependencies=[{:name=>"rails", :version=>'3.2.22'}]
14
+ expect(@check.vuln?).to eq(false)
15
+ end
16
+
17
+ it "is ignored if rails version is 3.1.x" do
18
+ @check.dependencies=[{:name=>"rails", :version=>'3.1.16'}]
19
+ expect(@check.vuln?).to eq(true)
20
+ end
21
+ it "is ignored if rails version is 3.0.x" do
22
+ @check.dependencies=[{:name=>"rails", :version=>'3.0.16'}]
23
+ expect(@check.vuln?).to eq(true)
24
+ end
25
+
26
+ end
@@ -25,4 +25,9 @@ describe "The CVE-2014-0080 vulnerability" do
25
25
  @check.dependencies = [{:name=>"rails", :version=>'4.0.3'}]
26
26
  expect(@check.vuln?).to eq(false)
27
27
  end
28
+ it "doesn't affect version 3.2.22" do
29
+ @check.dependencies = [{:name=>"rails", :version=>'3.2.22'}]
30
+ expect(@check.vuln?).to eq(false)
31
+ end
32
+
28
33
  end
@@ -38,31 +38,13 @@ describe "The CVE-2014-0081 vulnerability" do
38
38
  @check.dependencies = [{:name=>"rails", :version=>version}]
39
39
  expect(@check.vuln?).to eq(true)
40
40
  end
41
- it "affects version 2.x.y" do
42
- require 'securerandom'
43
- rand_min = SecureRandom.random_number(9999)
44
- rand_patch = SecureRandom.random_number(9999)
45
- version = "2.#{rand_min}.#{rand_patch}"
46
-
47
- @check.dependencies = [{:name=>"rails", :version=>version}]
48
- expect(@check.vuln?).to eq(true)
49
- end
50
- it "affects version 1.x.y" do
51
- require 'securerandom'
52
- rand_min = SecureRandom.random_number(9999)
53
- rand_patch = SecureRandom.random_number(9999)
54
- version = "1.#{rand_min}.#{rand_patch}"
55
-
56
- @check.dependencies = [{:name=>"rails", :version=>version}]
57
- expect(@check.vuln?).to eq(true)
58
- end
59
41
 
60
42
  it "doesn't affect version 4.0.3" do
61
43
  @check.dependencies = [{:name=>"rails", :version=>'4.0.3'}]
62
44
  expect(@check.vuln?).to eq(false)
63
45
  end
64
- it "doesn't affect version 3.2.17" do
65
- @check.dependencies = [{:name=>"rails", :version=>'3.2.17'}]
46
+ it "doesn't affect version 3.2.22" do
47
+ @check.dependencies = [{:name=>"rails", :version=>'3.2.22'}]
66
48
  expect(@check.vuln?).to eq(false)
67
49
  end
68
50
  end
@@ -12,8 +12,8 @@ describe "The CVE-2014-0130 vulnerability" do
12
12
  @check.dependencies = [{:name=>"rails", :version=>'4.0.4'}]
13
13
  expect(@check.vuln?).to eq(true)
14
14
  end
15
- it "is reported when rails 3.2.17 is detected" do
16
- @check.dependencies = [{:name=>"rails", :version=>'3.2.17'}]
17
- expect(@check.vuln?).to eq(true)
15
+ it "is reported when rails 3.2.22 is detected" do
16
+ @check.dependencies = [{:name=>"rails", :version=>'3.2.22'}]
17
+ expect(@check.vuln?).to eq(false)
18
18
  end
19
19
  end
@@ -30,4 +30,6 @@ describe "The CVE-2015-3226 vulnerability" do
30
30
  expect(@check.vuln?).to eq(false)
31
31
  end
32
32
 
33
+
34
+
33
35
  end
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
  describe "The CVE-2015-3227 vulnerability" do
3
3
  before(:all) do
4
4
  @check = Dawn::Kb::CVE_2015_3227.new
5
- @check.debug = true
6
5
  end
7
6
  it "is reported when vulnerable active_support gem is used (4.1.11)" do
8
7
  @check.dependencies = [{:name=>"activesupport", :version=>'4.1.11'}]
@@ -24,4 +23,9 @@ describe "The CVE-2015-3227 vulnerability" do
24
23
  @check.dependencies = [{:name=>"activesupport", :version=>'4.2.3'}]
25
24
  expect(@check.vuln?).to eq(false)
26
25
  end
26
+ it "is not reported when safe active_support gem is used (3.2.22)" do
27
+ @check.dependencies = [{:name=>"activesupport", :version=>'3.2.22'}]
28
+ expect(@check.vuln?).to eq(false)
29
+ end
30
+
27
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dawnscanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paolo Perego
@@ -30,7 +30,7 @@ cert_chain:
30
30
  jm6Bw8fGx65GCWIdgMhH/P0icixcnyrnotnnOrEcmPudIlgEN9qaUYcguOfFBhTH
31
31
  1sGpM7KzrYHU8qJJPrdaX0ezIDL4cN/kA/DxYTfUiMw=
32
32
  -----END CERTIFICATE-----
33
- date: 2016-09-06 00:00:00.000000000 Z
33
+ date: 2016-09-27 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: cvss
@@ -286,6 +286,7 @@ files:
286
286
  - ".ruby-gemset"
287
287
  - ".ruby-version"
288
288
  - ".travis.yml"
289
+ - CONTRIBUTING.md
289
290
  - Changelog.md
290
291
  - Gemfile
291
292
  - KnowledgeBase.md
@@ -317,6 +318,8 @@ files:
317
318
  - checksum/dawnscanner-1.6.0.gem.sha1
318
319
  - checksum/dawnscanner-1.6.1.gem.sha1
319
320
  - checksum/dawnscanner-1.6.2.gem.sha1
321
+ - checksum/dawnscanner-1.6.3.gem.sha1
322
+ - code_of_conduct.md
320
323
  - dawnscanner.gemspec
321
324
  - doc/dawn_1_0_announcement.md
322
325
  - doc/dawn_1_1_announcement.md
@@ -631,6 +634,7 @@ files:
631
634
  - spec/lib/kb/cve_2013_4593_spec.rb
632
635
  - spec/lib/kb/cve_2013_5647_spec.rb
633
636
  - spec/lib/kb/cve_2013_5671_spec.rb
637
+ - spec/lib/kb/cve_2013_6414_spec.rb
634
638
  - spec/lib/kb/cve_2013_6416_spec.rb
635
639
  - spec/lib/kb/cve_2013_6459_spec.rb
636
640
  - spec/lib/kb/cve_2013_7086_spec.rb
@@ -776,6 +780,7 @@ test_files:
776
780
  - spec/lib/kb/cve_2013_4593_spec.rb
777
781
  - spec/lib/kb/cve_2013_5647_spec.rb
778
782
  - spec/lib/kb/cve_2013_5671_spec.rb
783
+ - spec/lib/kb/cve_2013_6414_spec.rb
779
784
  - spec/lib/kb/cve_2013_6416_spec.rb
780
785
  - spec/lib/kb/cve_2013_6459_spec.rb
781
786
  - spec/lib/kb/cve_2013_7086_spec.rb
metadata.gz.sig CHANGED
@@ -1,2 +1 @@
1
- ��8Y���!iE�^F��f��˶3�=.�����S"ń!�L��d\.��ɽ�05��棘0QǏ\�L�z���n��O��#���o�!�Ҫ���D4�ܝ����sƲn��C1S��^~ގ��N���D��9Iw
2
- ���b��S�1���`$�< e�L�$!?��`��eg߆u#��d�~���.1������e��'�Y�R|����-������&�cP� }V��K�vA�������^*��H ���n�
1
+ ��������%��y��j���7)��� w���\6��>J�����>�!�E���N�>rHQ��11M�s?�nU1Q��< ��~[3.y�dw���)� ���i�t����.�|���<�R��|�-����O�����F��(���k��2�I��ꤥ�/3]� ��o�RTu H"#�ep1���M.a��j���U���PvvY���Ê�䃸���� `]���87����wp�|�����2�0�g�