date_range_covers 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/date_range_covers.gemspec +1 -1
- data/lib/date_range_covers/version.rb +1 -1
- data/lib/date_range_covers.rb +13 -14
- data/spec/date_range_covers_spec.rb +38 -32
- metadata +7 -10
- data/lib/a_date.rb +0 -26
- data/spec/a_date_spec.rb +0 -86
data/date_range_covers.gemspec
CHANGED
@@ -21,5 +21,5 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "rspec"
|
24
|
-
spec.add_development_dependency "
|
24
|
+
spec.add_development_dependency "activesupport", "~> 3.2"
|
25
25
|
end
|
data/lib/date_range_covers.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "date_range_covers/version"
|
2
2
|
require 'date'
|
3
|
-
require 'active_support'
|
4
|
-
require 'a_date'
|
3
|
+
require 'active_support/all'
|
5
4
|
|
6
5
|
module DateRangeCovers
|
7
6
|
class DateRange
|
@@ -140,21 +139,21 @@ module DateRangeCovers
|
|
140
139
|
unless options.empty?
|
141
140
|
case options[:include]
|
142
141
|
when :both
|
143
|
-
s_date =
|
144
|
-
e_date =
|
142
|
+
s_date = s_date.beginning_of_week(beginning_of_week_day)
|
143
|
+
e_date = e_date.end_of_week(beginning_of_week_day)
|
145
144
|
|
146
|
-
start_of_e_week =
|
145
|
+
start_of_e_week = e_date.beginning_of_week(beginning_of_week_day)
|
147
146
|
|
148
147
|
weeks << s_date unless is_covered?(s_date)
|
149
148
|
weeks << start_of_e_week unless is_covered?(start_of_e_week)
|
150
149
|
|
151
150
|
when :start_week
|
152
|
-
s_date =
|
151
|
+
s_date = s_date.beginning_of_week(beginning_of_week_day)
|
153
152
|
weeks << s_date unless is_covered?(s_date)
|
154
153
|
|
155
154
|
when :end_week
|
156
|
-
e_date =
|
157
|
-
start_of_e_week =
|
155
|
+
e_date = e_date.end_of_week(beginning_of_week_day)
|
156
|
+
start_of_e_week = e_date.beginning_of_week(beginning_of_week_day)
|
158
157
|
|
159
158
|
weeks << start_of_e_week unless is_covered?(start_of_e_week)
|
160
159
|
end
|
@@ -163,16 +162,16 @@ module DateRangeCovers
|
|
163
162
|
#We need to iterate through every week and
|
164
163
|
#see if the week is wholly contained in the
|
165
164
|
#date range
|
166
|
-
bottom_of_week =
|
167
|
-
top_of_week =
|
165
|
+
bottom_of_week = s_date.beginning_of_week(beginning_of_week_day)
|
166
|
+
top_of_week = s_date.end_of_week(beginning_of_week_day)
|
168
167
|
|
169
168
|
while bottom_of_week < e_date do
|
170
169
|
if (s_date..e_date).include?(bottom_of_week..top_of_week)\
|
171
170
|
and !date_range_flows_into_selected_months?(bottom_of_week, top_of_week) # if part of a week already belongs to a covered month, we should not add that week to the list
|
172
171
|
weeks << bottom_of_week unless is_covered?(bottom_of_week)
|
173
172
|
end
|
174
|
-
bottom_of_week
|
175
|
-
top_of_week = bottom_of_week
|
173
|
+
bottom_of_week = bottom_of_week.next_week(beginning_of_week_day)
|
174
|
+
top_of_week = bottom_of_week.end_of_week(beginning_of_week_day)
|
176
175
|
end
|
177
176
|
|
178
177
|
covs[:weeks] = weeks.compact.uniq.sort
|
@@ -259,8 +258,8 @@ module DateRangeCovers
|
|
259
258
|
|
260
259
|
if !is_covered and covs[:weeks] and !covs[:weeks].empty?
|
261
260
|
covs[:weeks].each do |week_date|
|
262
|
-
start_week =
|
263
|
-
end_week =
|
261
|
+
start_week = week_date.beginning_of_week(beginning_of_week_day)
|
262
|
+
end_week = week_date.end_of_week(beginning_of_week_day)
|
264
263
|
is_covered = (start_week..end_week).include?(dates) ? true : false
|
265
264
|
break if is_covered
|
266
265
|
end
|
@@ -481,7 +481,8 @@ describe DateRangeCovers do
|
|
481
481
|
context "when dates in the same week" do
|
482
482
|
context 'when dates are the same' do
|
483
483
|
let(:date) { Date.today }
|
484
|
-
let(:
|
484
|
+
let(:start_of_week) { :sunday }
|
485
|
+
let(:drange) { DateRangeCovers::DateRange.new(date, date, start_of_week) }
|
485
486
|
|
486
487
|
context 'when include is nil' do
|
487
488
|
let(:weeks) { drange.weeks_covered }
|
@@ -494,7 +495,7 @@ describe DateRangeCovers do
|
|
494
495
|
let(:weeks) { drange.weeks_covered(:include => :start_week) }
|
495
496
|
it 'should return week containing the start date' do
|
496
497
|
weeks.should_not be_empty
|
497
|
-
weeks.should include
|
498
|
+
weeks.should include date.beginning_of_week(start_of_week)
|
498
499
|
end
|
499
500
|
end
|
500
501
|
|
@@ -502,7 +503,7 @@ describe DateRangeCovers do
|
|
502
503
|
let(:weeks) { drange.weeks_covered(:include => :end_week) }
|
503
504
|
it 'should return week containing the end date' do
|
504
505
|
weeks.should_not be_empty
|
505
|
-
weeks.should include
|
506
|
+
weeks.should include date.beginning_of_week(start_of_week)
|
506
507
|
end
|
507
508
|
end
|
508
509
|
|
@@ -510,7 +511,7 @@ describe DateRangeCovers do
|
|
510
511
|
let(:weeks) { drange.weeks_covered(:include => :both) }
|
511
512
|
it 'should return weeks containing the start date and the end date' do
|
512
513
|
weeks.should_not be_empty
|
513
|
-
weeks.should include
|
514
|
+
weeks.should include date.beginning_of_week(start_of_week)
|
514
515
|
end
|
515
516
|
end
|
516
517
|
end
|
@@ -520,7 +521,8 @@ describe DateRangeCovers do
|
|
520
521
|
context '2013-03-02(Saturday) to 2013-03-03(Sunday)' do
|
521
522
|
let(:start_date) { Date.parse('2013-03-02') }
|
522
523
|
let(:end_date) { Date.parse('2013-03-03') }
|
523
|
-
let(:
|
524
|
+
let(:start_of_week) { :sunday }
|
525
|
+
let(:drange) { DateRangeCovers::DateRange.new(start_date, end_date, start_of_week) }
|
524
526
|
|
525
527
|
context 'when include is nil' do
|
526
528
|
let(:weeks) { drange.weeks_covered }
|
@@ -533,7 +535,7 @@ describe DateRangeCovers do
|
|
533
535
|
let(:weeks) { drange.weeks_covered(:include => :start_week) }
|
534
536
|
it 'should return beginning of start week' do
|
535
537
|
weeks.should_not be_empty
|
536
|
-
weeks.should include
|
538
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
537
539
|
end
|
538
540
|
end
|
539
541
|
|
@@ -541,7 +543,7 @@ describe DateRangeCovers do
|
|
541
543
|
let(:weeks) { drange.weeks_covered(:include => :end_week) }
|
542
544
|
it 'should return beginning of end week' do
|
543
545
|
weeks.should_not be_empty
|
544
|
-
weeks.should include
|
546
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
545
547
|
end
|
546
548
|
end
|
547
549
|
|
@@ -549,8 +551,8 @@ describe DateRangeCovers do
|
|
549
551
|
let(:weeks) { drange.weeks_covered(:include => :both) }
|
550
552
|
it 'should return beginning of start week and end week' do
|
551
553
|
weeks.should_not be_empty
|
552
|
-
weeks.should include
|
553
|
-
weeks.should include
|
554
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
555
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
554
556
|
end
|
555
557
|
end
|
556
558
|
end
|
@@ -558,12 +560,13 @@ describe DateRangeCovers do
|
|
558
560
|
context '2013-03-03(Sunday) to 2013-03-09(Saturday)' do
|
559
561
|
let(:start_date) { Date.parse('2013-03-03') }
|
560
562
|
let(:end_date) { Date.parse('2013-03-09') }
|
561
|
-
let(:
|
563
|
+
let(:start_of_week) { :sunday }
|
564
|
+
let(:drange) { DateRangeCovers::DateRange.new(start_date, end_date, start_of_week) }
|
562
565
|
context 'when include is nil' do
|
563
566
|
let(:weeks) { drange.weeks_covered }
|
564
567
|
it 'should return week with 2013-03-03 as the date' do
|
565
568
|
weeks.should_not be_empty
|
566
|
-
weeks.should include
|
569
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
567
570
|
end
|
568
571
|
end
|
569
572
|
|
@@ -571,7 +574,7 @@ describe DateRangeCovers do
|
|
571
574
|
let(:weeks) { drange.weeks_covered(:include => :start_week) }
|
572
575
|
it 'should return beginning of start week' do
|
573
576
|
weeks.should_not be_empty
|
574
|
-
weeks.should include
|
577
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
575
578
|
end
|
576
579
|
end
|
577
580
|
|
@@ -579,7 +582,7 @@ describe DateRangeCovers do
|
|
579
582
|
let(:weeks) { drange.weeks_covered(:include => :end_week) }
|
580
583
|
it 'should return beginning of end week' do
|
581
584
|
weeks.should_not be_empty
|
582
|
-
weeks.should include
|
585
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
583
586
|
end
|
584
587
|
end
|
585
588
|
|
@@ -587,8 +590,8 @@ describe DateRangeCovers do
|
|
587
590
|
let(:weeks) { drange.weeks_covered(:include => :both) }
|
588
591
|
it 'should return beginning of start week and end week' do
|
589
592
|
weeks.should_not be_empty
|
590
|
-
weeks.should include
|
591
|
-
weeks.should include
|
593
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
594
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
592
595
|
end
|
593
596
|
end
|
594
597
|
end
|
@@ -596,13 +599,14 @@ describe DateRangeCovers do
|
|
596
599
|
context '2013-03-03(Sunday) to 2013-03-10(Sunday)' do
|
597
600
|
let(:start_date) { Date.parse('2013-03-03') }
|
598
601
|
let(:end_date) { Date.parse('2013-03-10') }
|
599
|
-
let(:
|
602
|
+
let(:start_of_week) { :sunday }
|
603
|
+
let(:drange) { DateRangeCovers::DateRange.new(start_date, end_date, start_of_week) }
|
600
604
|
context 'when include is nil' do
|
601
605
|
let(:weeks) { drange.weeks_covered }
|
602
606
|
it 'should return week with 2013-03-03 as the date' do
|
603
607
|
weeks.should_not be_empty
|
604
|
-
weeks.should include
|
605
|
-
weeks.should_not include
|
608
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
609
|
+
weeks.should_not include end_date.beginning_of_week(start_of_week)
|
606
610
|
end
|
607
611
|
end
|
608
612
|
|
@@ -610,8 +614,8 @@ describe DateRangeCovers do
|
|
610
614
|
let(:weeks) { drange.weeks_covered(:include => :start_week) }
|
611
615
|
it 'should return beginning of start week' do
|
612
616
|
weeks.should_not be_empty
|
613
|
-
weeks.should include
|
614
|
-
weeks.should_not include
|
617
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
618
|
+
weeks.should_not include end_date.beginning_of_week(start_of_week)
|
615
619
|
end
|
616
620
|
end
|
617
621
|
|
@@ -619,8 +623,8 @@ describe DateRangeCovers do
|
|
619
623
|
let(:weeks) { drange.weeks_covered(:include => :end_week) }
|
620
624
|
it 'should return beginning of end week' do
|
621
625
|
weeks.should_not be_empty
|
622
|
-
weeks.should include
|
623
|
-
weeks.should include
|
626
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
627
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
624
628
|
end
|
625
629
|
end
|
626
630
|
|
@@ -628,8 +632,8 @@ describe DateRangeCovers do
|
|
628
632
|
let(:weeks) { drange.weeks_covered(:include => :both) }
|
629
633
|
it 'should return beginning of start week and end week' do
|
630
634
|
weeks.should_not be_empty
|
631
|
-
weeks.should include
|
632
|
-
weeks.should include
|
635
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
636
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
633
637
|
end
|
634
638
|
end
|
635
639
|
end
|
@@ -637,7 +641,8 @@ describe DateRangeCovers do
|
|
637
641
|
context '2013-03-05(Tuesday) to 2013-03-31(Sunday)' do
|
638
642
|
let(:start_date) { Date.parse('2013-03-05') }
|
639
643
|
let(:end_date) { Date.parse('2013-03-31') }
|
640
|
-
let(:
|
644
|
+
let(:start_of_week) { :sunday }
|
645
|
+
let(:drange) { DateRangeCovers::DateRange.new(start_date, end_date, start_of_week) }
|
641
646
|
context 'when include is nil' do
|
642
647
|
let(:weeks) { drange.weeks_covered }
|
643
648
|
it 'should return weeks of 10, 17 and 24' do
|
@@ -652,11 +657,11 @@ describe DateRangeCovers do
|
|
652
657
|
let(:weeks) { drange.weeks_covered(:include => :start_week) }
|
653
658
|
it 'should return beginning of start week' do
|
654
659
|
weeks.length.should == 4
|
655
|
-
weeks.should include
|
660
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
656
661
|
weeks.should include Date.parse('2013-03-10')
|
657
662
|
weeks.should include Date.parse('2013-03-17')
|
658
663
|
weeks.should include Date.parse('2013-03-24')
|
659
|
-
weeks.should_not include
|
664
|
+
weeks.should_not include end_date.beginning_of_week(start_of_week)
|
660
665
|
end
|
661
666
|
end
|
662
667
|
|
@@ -664,11 +669,11 @@ describe DateRangeCovers do
|
|
664
669
|
let(:weeks) { drange.weeks_covered(:include => :end_week) }
|
665
670
|
it 'should return beginning of end week' do
|
666
671
|
weeks.length.should == 4
|
667
|
-
weeks.should_not include
|
672
|
+
weeks.should_not include start_date.beginning_of_week(start_of_week)
|
668
673
|
weeks.should include Date.parse('2013-03-10')
|
669
674
|
weeks.should include Date.parse('2013-03-17')
|
670
675
|
weeks.should include Date.parse('2013-03-24')
|
671
|
-
weeks.should include
|
676
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
672
677
|
end
|
673
678
|
end
|
674
679
|
|
@@ -676,11 +681,11 @@ describe DateRangeCovers do
|
|
676
681
|
let(:weeks) { drange.weeks_covered(:include => :both) }
|
677
682
|
it 'should return beginning of start week and end week' do
|
678
683
|
weeks.length.should == 5
|
679
|
-
weeks.should include
|
684
|
+
weeks.should include start_date.beginning_of_week(start_of_week)
|
680
685
|
weeks.should include Date.parse('2013-03-10')
|
681
686
|
weeks.should include Date.parse('2013-03-17')
|
682
687
|
weeks.should include Date.parse('2013-03-24')
|
683
|
-
weeks.should include
|
688
|
+
weeks.should include end_date.beginning_of_week(start_of_week)
|
684
689
|
end
|
685
690
|
end
|
686
691
|
end
|
@@ -690,7 +695,8 @@ describe DateRangeCovers do
|
|
690
695
|
describe "#dates_covered" do
|
691
696
|
context "when start_date and end_date are the same" do
|
692
697
|
let(:date) { Date.today }
|
693
|
-
let(:
|
698
|
+
let(:start_of_week) { :sunday }
|
699
|
+
let(:drange) { DateRangeCovers::DateRange.new(date, date, start_of_week) }
|
694
700
|
|
695
701
|
context 'when include is nil' do
|
696
702
|
let(:dates) { drange.dates_covered }
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: date_range_covers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Antall Fernandes
|
@@ -61,18 +61,18 @@ dependencies:
|
|
61
61
|
type: :development
|
62
62
|
version_requirements: *id003
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
64
|
+
name: activesupport
|
65
65
|
prerelease: false
|
66
66
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
67
|
none: false
|
68
68
|
requirements:
|
69
69
|
- - ~>
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
hash:
|
71
|
+
hash: 3
|
72
72
|
segments:
|
73
|
-
- 2
|
74
73
|
- 3
|
75
|
-
|
74
|
+
- 2
|
75
|
+
version: "3.2"
|
76
76
|
type: :development
|
77
77
|
version_requirements: *id004
|
78
78
|
description: The gem helps find the years, months, weeks and days covered by a date range
|
@@ -92,10 +92,8 @@ files:
|
|
92
92
|
- README.md
|
93
93
|
- Rakefile
|
94
94
|
- date_range_covers.gemspec
|
95
|
-
- lib/a_date.rb
|
96
95
|
- lib/date_range_covers.rb
|
97
96
|
- lib/date_range_covers/version.rb
|
98
|
-
- spec/a_date_spec.rb
|
99
97
|
- spec/date_range_covers_spec.rb
|
100
98
|
homepage: ""
|
101
99
|
licenses:
|
@@ -131,5 +129,4 @@ signing_key:
|
|
131
129
|
specification_version: 3
|
132
130
|
summary: ""
|
133
131
|
test_files:
|
134
|
-
- spec/a_date_spec.rb
|
135
132
|
- spec/date_range_covers_spec.rb
|
data/lib/a_date.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module ADate
|
2
|
-
|
3
|
-
@@DAYS_OF_WEEK = [
|
4
|
-
:sunday,
|
5
|
-
:monday,
|
6
|
-
:tuesday,
|
7
|
-
:wednesday,
|
8
|
-
:thursday,
|
9
|
-
:friday,
|
10
|
-
:saturday
|
11
|
-
]
|
12
|
-
|
13
|
-
def self.beginning_of_week(date, beginning_of_week_day = :sunday)
|
14
|
-
beginning_of_week_adj = @@DAYS_OF_WEEK.index beginning_of_week_day
|
15
|
-
|
16
|
-
current_day_number = 0
|
17
|
-
current_day_number = date.wday if date.wday != 0
|
18
|
-
current_day_number = 7 if date.wday == 0 and beginning_of_week_adj == 1
|
19
|
-
|
20
|
-
date = date - current_day_number + beginning_of_week_adj
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.end_of_week(date, beginning_of_week_day = :sunday)
|
24
|
-
beginning_of_week(date, beginning_of_week_day) + 6
|
25
|
-
end
|
26
|
-
end
|
data/spec/a_date_spec.rb
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'lib/a_date'
|
2
|
-
require 'date'
|
3
|
-
|
4
|
-
describe Date do
|
5
|
-
describe '#beginning_of_week and #end_of_week' do
|
6
|
-
|
7
|
-
context 'when beginning_of_week day is sunday' do
|
8
|
-
context 'when date is a sunday' do
|
9
|
-
let(:date) { Date.parse('2013-03-03') }
|
10
|
-
|
11
|
-
it 'should return 2013-03-03' do
|
12
|
-
ADate.beginning_of_week(date).should == date
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should return 2013-03-09' do
|
16
|
-
ADate.end_of_week(date).should == Date.parse('2013-03-09')
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context 'when date is a monday' do
|
21
|
-
let(:date) { Date.parse('2013-03-04') }
|
22
|
-
|
23
|
-
it 'should return 2013-03-03' do
|
24
|
-
ADate.beginning_of_week(date).should == Date.parse('2013-03-03')
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'should return 2013-03-09' do
|
28
|
-
ADate.end_of_week(date).should == Date.parse('2013-03-09')
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context 'when date is a saturday' do
|
33
|
-
let(:date) { Date.parse('2013-03-09') }
|
34
|
-
|
35
|
-
it 'should return 2013-03-03' do
|
36
|
-
ADate.beginning_of_week(date).should == Date.parse('2013-03-03')
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'should return 2013-03-09' do
|
40
|
-
ADate.end_of_week(date).should == Date.parse('2013-03-09')
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'when beginning_of_week day is monday' do
|
46
|
-
context 'when date is a sunday' do
|
47
|
-
let(:date) { Date.parse('2013-03-03') }
|
48
|
-
|
49
|
-
it 'should return 2013-02-25' do
|
50
|
-
ADate.beginning_of_week(date, :monday).should == Date.parse('2013-02-25')
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'should return 2013-03-03' do
|
54
|
-
ADate.end_of_week(date, :monday).should == Date.parse('2013-03-03')
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
context 'when date is a monday' do
|
59
|
-
let(:date) { Date.parse('2013-03-04') }
|
60
|
-
|
61
|
-
it 'should return 2013-03-04' do
|
62
|
-
ADate.beginning_of_week(date, :monday).should == Date.parse('2013-03-04')
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'should return 2013-03-10' do
|
66
|
-
ADate.end_of_week(date, :monday).should == Date.parse('2013-03-10')
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context 'when date is a saturday' do
|
71
|
-
let(:date) { Date.parse('2013-03-09') }
|
72
|
-
|
73
|
-
it 'should return 2013-03-04' do
|
74
|
-
ADate.beginning_of_week(date, :monday).should == Date.parse('2013-03-04')
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'should return 2013-03-10' do
|
78
|
-
ADate.end_of_week(date, :monday).should == Date.parse('2013-03-10')
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
|