Overview
Context
Changes
Modified client/1.0/neutral/pkgr_upload.eagle
from [d5bee856dc]
to [ce49a5edf0].
︙ | | |
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
|
#
# NOTE: This procedure sets up the default values for all configuration
# parameters used by the package uploader client. The script
# argument is the fully qualified path and file name for the script
# being evaluated.
#
proc setupUploadVars { script } {
#
# NOTE: The project code for the Fossil repository. This will be checked
# prior to staging or committing any files.
#
variable projectCode; # DEFAULT: 9ceada8dbb8678898e5b2c05386e73b3ff2c2dec
if {![info exists projectCode]} then {
set projectCode 9ceada8dbb8678898e5b2c05386e73b3ff2c2dec
}
#
# NOTE: What is the fully qualified path to the directory containing the
# checkout for the package client?
#
variable checkoutDirectory
variable checkoutDirectory; # DEFAULT: <scriptDir>
if {![info exists checkoutDirectory]} then {
set checkoutDirectory [file dirname $script]
}
#
# NOTE: The command to use when attempting to check for changes prior to
# staging files using Fossil.
#
variable fossilChangesCommand; # DEFAULT fossil changes ...
if {![info exists fossilChangesCommand]} then {
set fossilChangesCommand {fossil changes --chdir {${checkoutDirectory}}}
}
#
# NOTE: The regular expression pattern used when attempting to verify
# that the Fossil checkout has no changes staged. Generally, this
# pattern should only match an empty string.
#
variable fossilChangesPattern; # DEFAULT: {^$}
if {![info exists fossilChangesPattern]} then {
set fossilChangesPattern {^$}
}
#
# NOTE: The command to use when attempting to check the checkout status
# prior to staging files using Fossil.
#
variable fossilInfoCommand; # DEFAULT fossil info ...
if {![info exists fossilInfoCommand]} then {
set fossilInfoCommand {fossil info --chdir {${checkoutDirectory}}}
}
#
# NOTE: The regular expression pattern used when attempting to verify
# that the Fossil checkout belongs to the correct project.
#
variable fossilInfoProjectCodePattern; # DEFAULT: {^project-code:\\s+...\$}
if {![info exists fossilInfoProjectCodePattern]} then {
set fossilInfoProjectCodePattern [appendArgs \
{^project-code:\\s+${projectCode}\$}]
}
#
# NOTE: The regular expression pattern used when attempting to verify
# that the Fossil checkout is sitting on the correct branch.
#
variable fossilInfoTagsPattern; # DEFAULT: {^tags:\s+trunk(?:,|$)}
if {![info exists fossilInfoTagsPattern]} then {
set fossilInfoTagsPattern {^tags:\s+trunk(?:,|$)}
}
#
# NOTE: The command to use when attempting to reset the checkout to the
# default branch prior to staging files using Fossil.
#
variable fossilUpdateCommand; # DEFAULT fossil update trunk ...
if {![info exists fossilUpdateCommand]} then {
set fossilUpdateCommand \
{fossil update trunk --chdir {${checkoutDirectory}}}
}
#
# NOTE: The command to use when attempting to stage package files using
# Fossil.
#
variable fossilAddCommand; # DEFAULT fossil add {${fileName}}
variable fossilAddCommand; # DEFAULT fossil add ...
if {![info exists fossilAddCommand]} then {
set fossilAddCommand {fossil add {${fileName}}}
set fossilAddCommand \
{fossil add --chdir {${checkoutDirectory}} {${fileName}}}
}
#
# NOTE: The command to use when attempting to commit package files using
# Fossil.
#
variable fossilCommitCommand; # DEFAULT fossil commit ...
|
︙ | | |
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
|
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
+
-
-
-
+
-
-
-
+
-
-
-
+
+
-
-
+
+
+
+
|
return [eval ::PackageRepository::getFileViaHttp \
[list $uri] [list 20] [list stdout] [list \
[expr {!$verboseMetadataSubmit}]] $options]
}
}
#
# NOTE: This procedure attempts to verify that the checkout directory does
# not contain any (stray) changes. There are no arguments. Non-zero
# is returned if the verification is successful.
#
proc verifyThereAreNoChanges {} {
variable checkoutDirectory
variable fossilChangesCommand
variable fossilChangesPattern
if {[isEagle]} then {
if {[catch {
eval exec -nocarriagereturns -stdout output -stderr error \
[subst $fossilChangesCommand]
} result] == 0} then {
set result [appendArgs $output $error]
} else {
return false
}
} else {
if {[catch {
eval exec [subst $fossilChangesCommand]
} result]} then {
return false
}
}
if {![info exists result] || \
![regexp -- $fossilChangesPattern $result]} then {
return false
}
return true
}
#
# NOTE: This procedure attempts to verify that the checkout directory does
# belong to the correct project. There are no arguments. Non-zero
# is returned if the verification is successful.
#
proc verifyThisIsTheCorrectProject {} {
variable checkoutDirectory
variable fossilInfoCommand
variable fossilInfoProjectCodePattern
variable projectCode
if {[isEagle]} then {
if {[catch {
eval exec -nocarriagereturns -stdout output -stderr error \
[subst $fossilInfoCommand]
} result] == 0} then {
set result [appendArgs $output $error]
} else {
return false
}
} else {
if {[catch {
eval exec [subst $fossilInfoCommand]
} result]} then {
return false
}
}
if {![info exists result] || ![regexp -line -- \
[subst $fossilInfoProjectCodePattern] $result]} then {
return false
}
return true
}
#
# NOTE: This procedure attempts to verify that the checkout directory does
# belong to the correct branch. There are no arguments. Non-zero
# is returned if the verification is successful.
#
proc verifyThisIsTheCorrectBranch {} {
variable checkoutDirectory
variable fossilInfoCommand
variable fossilInfoTagsPattern
if {[isEagle]} then {
if {[catch {
eval exec -nocarriagereturns -stdout output -stderr error \
[subst $fossilInfoCommand]
} result] == 0} then {
set result [appendArgs $output $error]
} else {
return false
}
} else {
if {[catch {
eval exec [subst $fossilInfoCommand]
} result]} then {
return false
}
}
if {![info exists result] || \
![regexp -line -- $fossilInfoTagsPattern $result]} then {
return false
}
return true
}
#
# NOTE: This procedure attempts to change the branch for the checkout
# directory. There are no arguments. This procedure may raise
# script errors.
#
proc changeToTheCorrectBranch {} {
variable checkoutDirectory
variable fossilUpdateCommand
if {[isEagle]} then {
if {[catch {
eval exec -success Success [subst $fossilUpdateCommand]
} error]} then {
error [appendArgs \
"could not change branch: " $error]
}
} else {
if {[catch {
eval exec [subst $fossilUpdateCommand]
} error]} then {
error [appendArgs \
"could not change branch: " $error]
}
}
}
#
# NOTE: This procedure attempts to stage the specified package files using
# Fossil. The fileNames argument is a list of (fully?) qualified
# local file names to stage.
#
# <public>
proc stagePackageFiles { language version platform fileNames } {
variable checkoutDirectory
variable fossilAddCommand
variable fossilUpdateCommand
if {![verifyThereAreNoChanges]} then {
error "cannot stage package files: there are pending changes"
}
if {![verifyThisIsTheCorrectProject]} then {
error "cannot stage package files: wrong project"
}
if {![verifyThisIsTheCorrectBranch]} then {
changeToTheCorrectBranch
if {![verifyThisIsTheCorrectBranch]} then {
error "cannot stage file: still on wrong branch"
}
}
set relativeFileNames [getRelativeFileNames $fileNames]
set savedPwd [pwd]; cd $checkoutDirectory
foreach fileName $fileNames relativeFileName $relativeFileNames {
file mkdir [file join \
$checkoutDirectory $language $version $platform \
$language $version $platform [file dirname $relativeFileName]]
[file dirname $relativeFileName]]
file copy $fileName $relativeFileName
set fileName $relativeFileName
file copy $fileName \
[file join $checkoutDirectory $relativeFileName]
set fileName $relativeFileName; # NOTE: For [subst].
if {[isEagle]} then {
set fileName [::PackageRepository::formatExecArgument $fileName]
if {[catch {
eval exec -success Success [subst $fossilAddCommand]
} error]} then {
cd $savedPwd
error [appendArgs \
"failed to stage file \"" $fileName "\": " $error]
"could not stage file \"" $fileName "\": " $error]
}
} else {
if {[catch {
eval exec [subst $fossilAddCommand]
} error]} then {
cd $savedPwd
error [appendArgs \
"failed to stage file \"" $fileName "\": " $error]
"could not stage file \"" $fileName "\": " $error]
}
}
}
cd $savedPwd
}
#
# NOTE: This procedure attempts to commit the staged package files to the
# remote package file repository using Fossil. The varName argument
# is the name of a scalar variable in the context of the immediate
# caller that will receive the resulting Fossil check-in identifier.
#
# <public>
proc commitPackageFiles { varName } {
proc commitPackageFiles { package patchLevel language version varName } {
variable checkoutDirectory
variable fossilCommitCommand
variable fossilCommitPattern
set branch [appendArgs pkg_ $package _ $patchLevel]
set branch ""; # TODO: Figure out a good branch.
set comment ""; # TODO: Figure out a good comment.
set comment [appendArgs \
"Add package " $package " v" $patchLevel " for " $language \
" v" $version .]
if {[isEagle]} then {
if {[catch {
eval exec -nocarriagereturns -stdout output -stderr error \
[subst $fossilCommitCommand]
} result] == 0} then {
set result [appendArgs $output $error]
|
︙ | | |
Modified client/1.0/neutral/pkgr_upload.eagle.asc
from [0964d32505]
to [85db33e229].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository
iQIcBAABCAAGBQJYV1qoAAoJEFAslq9JXcLZaq0QAKGNBMbsWjws8CLTFXKWts8n
aoQ7+Fe2YkGnpLIRLzc6gha/5K3suibDgZnOiSYxL5dRJnB5kJrVojaqFv2kQA9B
ZQFdSBdYGhZq2qGPIpOu/eeA3gbq0116FehPeqAIvo5wVZ1p0MWAPCau4Gg2LUGK
AY3hU55EH96a3cktuq8f+xDmmHV63ycgLCu1VAHcV/hvzpX0LpXW6n47gRsoQOff
fS4gFAzc6vlEt5F/CiYiEhXUN7UY5/F0ce6LKM5FVWclqCNZicQXwvZIn+/KF5z0
F7riKt6QH8NGtjjGuRndGikfHmvKpjLoqAiwZ0/Y3fn9u3gPwU686iPc42eS4SUc
acEXMBrn8pM9BpSGnMIOrp5WcQDt07BLjzeX22KPWBsM1skmEqwMo+sefDAg5odK
raTnCtnFTG2r1oBNblrkF8jr0CntJpKcTTh9IlruTCMqlQxEQqYSylcLQrHO6NR7
hKNAKUNf97v8GEjKMRHUNCYzVCDgY++ifhHOvxvf9yusMwlYLqJyFbi45sGvELpz
bQEybALCTQ7NCFom6/EV+v6e6CmnD0Hq/ho+c8rfCEJppLpu1ZUC6IVJ5o9msBwA
liKomZaH/gT+TuJJJn0KiR2sMe/g4nweVSRQyNqa6uo1erKi6/1URLIiL0Rmk+To
tsqZMJfTyHsz6EUiviyN
=5N7l
iQIcBAABCAAGBQJYWDTSAAoJEFAslq9JXcLZZZsP/1nDc+BYiIBYkTkDmhWyJjuG
VqPuvtIxWYzkOw6mLY3ndLy9XpS43ByK2U/1Rmc9J3EibgflpAhAc5CL+528ML9g
OCYkvnT912sWzYROHPai0fOmKigvSJEb2tf4aAxcHVg2JojmXzY0sxkEtMt5kayX
Gl2ssWxwJ75fSVVk5Kv3DOtdj0MeGM4aH+83u7OvCUDWpjEh0YexzbaZ/4Jkys4P
WxeXUkli9OR4HMdHHnwxdx0qCVxodlHuTw33ETvXpAPiLOHVmKSrYL2Rz1erXuLa
BsGJoGbfoTPblnDwMciTYFnRxvUhWqL0gIxsTGMsMkfeHxT5ka5sDqGDJ7cbEIcw
OlZt/2vBmOYbAwvTxejbecsOL9lTpOgRn6F1ih8ADvPNwuWgw+i1RXJIsjcGnRp2
nHB79cQikEypTl8k6ibbOOFwDx4Oml77a2xj3jFVxM7E8OyNVcckujnPto5NmOzv
6jvq5+P2yd5Zf/T8fIRrjg49Cs3r+dFIBHi6gtUODcxB6BbIJFEWCVbQ+n7jRKbs
6i3SXTqQE1p+sWzrzWOnB7k/U4vn5iAEyjhgzgPqLjXqNrVTBz/lVOFkm7sJmMR1
eCJv2Th5s6/GKTC8xZUEI4+WchAntYYSadY0KORMA6RTqiUekTuh+Al7br2LgkLH
MuRP2BppI0sbQ0CghjJF
=jK3P
-----END PGP SIGNATURE-----
|
Modified client/1.0/neutral/pkgr_upload.eagle.harpy
from [9a4cc16d5a]
to [be05086283].
︙ | | |
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Protocol>None</Protocol>
<Vendor>Mistachkin Systems</Vendor>
<Id>d6c3fbea-ed80-4cd6-acf7-df2997fc2f9e</Id>
<Id>016ba0e0-7a00-4f14-bf99-3621f235dc43</Id>
<HashAlgorithm>SHA512</HashAlgorithm>
<EntityType>Script</EntityType>
<TimeStamp>2016-12-19T03:57:02.7109375Z</TimeStamp>
<TimeStamp>2016-12-19T19:27:50.3632812Z</TimeStamp>
<Duration>-1.00:00:00</Duration>
<Key>0x9559f6017247e3e2</Key>
<Signature>
Z5ExW5PvBWmjZxYwvBgCn/ry3Y2U6/iY8NHyNQzI8kAiajRJWzvabiymzbKrcwYfeLwhWXUB8niG
BAkBn/u1D48GrvrgBJayolduY0CQcQtSx8VVBCVjBJ+/IhTYxFlzAE3vPihbtAcq6Tl9HqQa60/s
I8Trjx3r91G6DFHiUVsH/hHW40V35AbvJwbMtbGDDGP0N8tVkNVME+ixO/2sNrV9Kvs3LHcaAxOT
39qy6knWJv6sGOcncYqdnkHuehGkFzT70uxLpGR/M0XoE9CreNKR5I56Jj0jdyghdr5J2UkYuAZM
bnkIO5w3w7mwyyq1l3ihHEDJsbZiCRMHWzOtmcOQER7skyX4cXAnh7KFeeyYq7ETBIVMEu6kc2Ar
8TGBqFqVtIjXKD9YvC66+Jh7lm8OfVgzWu5C1xa4qNxg50FO7HDCLa1ZdDG6q9A1+WILmWCNkmin
xxlcVYtnVvbDqqYM5rQYIuKwt43BIRcv3i46ktslBkkIduZ0S9MUOtN6sfP7ss0MzWLSCVJ2g5im
4wsjE7Ng0uxUKl3yhjR46Zo7Xx6Ebco0a8n14+vEM25xlY5XOYaNVMuPU/oLezgTxYlAGu2RVsC4
pe02Qgn9mlsjg3AeF70LxXEzi07VLZTOZ8brq6I4WQlb4JX+vwzSSuZwdqSDbcNdG021A5mdNzbg
TAcEk/GgyqUJ+9nwgKhcUYKS/A3ozv+JQmuvRIMIrO3mza+xJmQgtRMnzLYywszD9g2zueM03mNI
AyOMtVBfiWPAa596sE1HzD9HV9iWEYBGFNDEnWtOKcYnqWb1wW7oqj3P5ha9Ohd3r1/znK+useze
oB6WRhnYjJM5EyBSA11wKhXL6uhHr/5JhNQEO8grFYeM+t9xcZDQEqrx58xO8ys+DDsRAoOmWTHd
u3JIPGes5B3+kIn/xoLTvBbScsjUEGmhSsZFUw2sXtDhRiNUuLhIFoadaUahOXjU9l8U06KUy1DQ
JFyBsNPp/1nO9Cr9BUJjalBnW5lHEX5Rw4cEWLQramC+/bU2pGetrLeNGfJyXHnnbfdghpqpjwV5
ZGpyWFIcmpv7yMeH0GTadn1J+f8sGN4HBAr5sSSQIHnKR8NHP2ZXQ9CnBvTDk5UEMWcN7pNl/d8o
h7oAZVEWwOC4zrGjYCf7vDtFf4/e8mJKd0yPASW/xH7SR/Yhf5+bvh+A1k2U8Lj5cMLZNqZwYQFc
92ngLuSMA4IY+fU8W3BPCohJopx2XPrr/qsfGEW1WTFVtp2eTW3QjsjROxLhy32wcTSu8++BdLVl
r5JsjCGYuMVBo2mXEQqoTeORNOJg5V0UVzIA0yU5/5jOHWEnNwLmwjaL/POQPVZXM6Kuw7pkEc76
HpMIbYrONj0cM0F1FpR/D03otCoQCLzC+yWqbUGm2Pu7v7lvomIFZhi2bHVdHtoTyOFZa1ciMt4b
0UXDdUDu6m63H1GMxlLhWtABu2XI+AFbPJR7AshvEmyRENOAob6x2SjElSJsBNTnz0gUs/U3ctvh
PSuReCaKYobeePN22vu/tX49Y0casc4cXICY1Hp2S9CoDeXIjpV1QPJHBq2RuAvzHRFka6wnytDq
oPagT0GB1GqvDvwA402OOVozg9H5QuRuQ9dAnHtILIPpyXrPsdA5qmPgzrVjV2EyvanRXERISvN2
41AXrBeQJAMzjUnpjg4L+sFVZmaCckzrgVPLtugODkBCdTMWAntyTCBxqnZcZ1WCtqzExmo9iDVz
bm/krhy2dZDB53wBhExdOSnlN+iCsYNHl80M9HLj+oLR0YxeyXtkEyMdhvCpwed13YaTldQkU6Km
E08TioyF1gLEF/KgBGxG7HmRGOUsEgBrp3JCZ6ykxnDW8xRmIXiFR6MwC7sKZZwFACM4PvpBFRMI
Yz479acz+z96PDcGSK8mHxLQfWuEG6kd3nBrMrF76MTm48Zg7vsbTDG53i4ZyjCA4RUGIECpceC5
VZpNLJACDDNogzGBn119iNV7VQ9En8HFHf2fXbNKbqLFy6IrehQN40usQdIe6osQ1cS5npsXCKfW
r6r0joP4qfngFcgn5Asf/2UlJqgqbpNi4trH7KEXstWrJ1dyD/nJQzdcglVf3qJIkDxm6P06bV1q
HXQTVB/GDbZJ3KplHY/K6caGa+j8z2tqbWYSst62XKpID7uDfc9RnAi3N2bqj8dyqpj3+bPDJuHd
mydqn6ogEI1c4myOS7Pnc6AtpMRp0r34anKMno91gMEODsgdTZP+UgJRyljt8UVQ6iQGsrZjOd/+
/RpzsMn571NnVxBktsFSf29kl1a+5hWXCFnWRBs8tDILjy3OMc4JrAzIfUxP01XQZx2as7VETPS/
Wviv/bMtQQVQXNMbS8sVWQRx5WBzsbAzFLCYFHR3FefbebH3gYI6esDnM1cwuGtbgNqxZZQOQTbF
PSzHAvbFsdkv/J94z/Mn0kuccNFR300x2ZVMoIROmDVxjVZ53amBiQe5gCULO2nTy+pT/xjE0qG+
A0y0NiWyQCnpu0gYPuYpMcNEKtOpnFE9m0XfiZKGA8CuDP20zH5qBTDQ+5wlnn77AnFZn1Ia+WN5
LIdhKzIka915lZw02AQWXBoU1M7LinODOVdDmNM8VGWN25sliOHxeH4BY8Hf1RHBfWL83x/YNLsX
AgJ0SK/eqsKjn+3A8nRmqpkpdEOly6lUKOBGg/wsjO7EY2cIVKPfEqYgi5Qdwk+3T5Jq1vk=
vBWXY1wBTmx2MwNjfVuFBOMnUWcb694qsLuetgXPJvQKXKHdWRFtfhXG32XfwXdr2FIUeGgBMinS
OHPswvyhmt7HCs440VFmP2bqz21YRlzczUdLr1FzQVIfgoshqzfrPgFQEeikmTpbTk2MEQ32aX2z
nw/fkHIJl6YpFUUhwRQM5hRtM0rxIt2zhhlNyFZkt8msVtaq+Hk/VmRf+R++6LjxsM2RBqxqQm05
fHXhI2neKs9t0/AH8Ib645gTlGvEWmh/dWGwsivwT//wqyGEhsfTsU7In0Pqz+aNq8w87VVtK12A
GwtKAndpqm2EmkP6bZ5fdl73Ytla83atmpfiv5b3k8zGZvIMQ9/+N180zc2TJNl5GdLaxNAO74xa
5pE633tTA0Ge9qXifMVZK7Ug7lgr/3QQT/nYCHGw8Qx7poeE9bSBzuwKp5a89sZbPXLHKvQ4y+Dd
yYQsgGWKxGt+0nbH3xSSGrO1XWmKiFS1kLTe8XDXNAR+B6WSiTOa3v0ssxLK2he1nGzuqeh6NCVd
4fNkoio7t+CuJjRAe543+FqhWdVKdMVydduV5Y4nuqCPra7KUHQ0unFk60Uo05TpBGDWYtBKeLYa
JjIGHf8ck3c9ZdnPgCLNXXGnxjiFbH2vaCHx20An1U/Fx74+tLTAVJ1qbQ2XLipn2CCwvng8hzmX
CP/QavAaPVBvYk/wGhPgmymod3sIhszQYo7xFOyWqSlgACV76z2DJovahwQRfFZbsQJI8FFOocUX
vY49ZY0C8OQ1afEgYgQnFRl4r8/b2wMCAyFEA1Jv8HmEr1ClrGz0rlQWNP+i5oVk1ewOAtNleUTV
0n3fjW/vlSX/KggfsXDBCEVZLlBU7wKuIBx9baoE05oqbvz3LQ8nd8CCs6Ygh4AQXLZ4KhhEld/s
+iyDTitO0CN9WT/KWcOR5NajPjLfRQ1X/2APmUhazMo0IWl8nOFrI9h2voAN9UizfJZcxpPlnDa4
JD99hnbCGyDxRr3bk1wsZPu6/aLMoO/smWYnekveo7SDlPR8xGJ6sUsINQkXx+GEmFeQ75YQUSR5
J9lLDZGxkI62vm90RPoDQvep8C53PGSdLZbUTspwdOlvoe10Y+aN1lFux57stgqA5OhbavvZNg1Z
pKf7gpeSoP+dpOH+WWWWq42+6Uj1IL4dHoxul4nqP/DjhH+fDJkKURzwUisXOvBgEOi5PcGAz9wY
u/K8b163Ugn5a7l/Z7RhhIsWheqYDxPxvVZrduzTdF+mOervlQK19J/Ik2wSkVz1qGtDNbLQnw7G
HAW7F0OjoETWI/MCLRtgg4eD3CDJsWFo0zJ4G1PKA6RjLBBUqCMR4Ot2oNWgSmRVHSqeoshAzcFf
wfQRRWWUgFemaAbp6CaKE1oLWXKRUYuXbXj+Bzr3EXeFvgNdRP0lzD7gbKgg99xNoeoDTSy2soQp
xCH2YMtEX7yrkDtu53Oz48skwXXlx0T/ChKKg5t0gjT5vUlPQvzpW26fUCpgY92GNhaWovTrqFUv
QRoOvwVJGK5OmaKYWMShd4Hwy7uw59ma2PzZ4l6C071u4XD6esLKGXtOH8pELFqySZHo+Dfui9Uj
qXxtoMzEoo/Zc7r5Q1Fv05vqmEkwuoW1ltsReMIw9/5EYOgyDe0eNrDcjj+i2FViLeWXQlTR0xwc
u9xHwXmuQvhe+OsTAsSIj2yqUcNSAhHPqPlA//v+qdJJoCvGxfgonmVQ/BgFVNIh7EgeHL9bl+H2
PQErd1ki/ZTD57kgSgJkAWX0PqnysURIgxb4STAHtwkGOBWHQQKtXtcGcNtM5GqSN6YO/zTSjPil
ttCHiqwYKsyPCyTOAugSB+2RfXH90+FTMKEIECQbZ7tLn7hzN4QA90ckzh0MpXcYbhFPwfbMJWN1
cZjfRcLN+W3p1WuqCF9ao0cO1KNAndVHhX0vZfk/VN5Ajfec/V4MfF+fwZo9tHSSpZiOVvhuXQyA
5IFwy0JZol6HFR1yj5+cTtMb71b/LRKU9c8AMem74Ad3ovKbd+zVuoy7PVT9Hfqvl/LMRkWi0Xzx
7iVmDuEfZ2X9rcGs0WVvT0XnQaukWRyK4I8EqK9JGHhiRD0Q5yE7TrMKey9Jf9wteb7eyhY7jZx7
4Y7GnLZLHK5vz88+7TvDUBnYX2xLD3Ula28+quHvek5/m4E610wPyrda8u8p1igPtvf0fRkNJm1J
k9TtX7O0luEZWKHnsWsZfAdiwzea46SxlfG9Pa8psdaQ6tK4uufioSQ17muSwVie3TJYRakBXDfG
oL7tMR3KwBwqvNd2cVy4H3WI72EYHgb0KQOsC22lZmCy69BbUnFeMW/SiyR4xJveCQID39Urdwjm
diaZ312Gu56CgrLT9N7f4oK83vI0BcMoi5oeRycX7ltOQa+RKxZmAnrPPG0rYQwcqZAVd/nrr5xC
SonzzcUx27YwUbukyC9vgy8vZ+BmtK6f1aIhIad3XT9UWmAi3WgHmE2RKyXnLtKeQTRFlpOTRw7q
ZB/PjUtUMmTWhR2UH94VK0bpblA1sIK7aG600/Sij712PEbw6A89oylIC1MtDUZ51EedIOjpSsEC
JtRYk69ERVunZbtM4kF6QezTmlspEuawdz+P+TRBAbMuI+D5EO2s/C3JFAvvbScZuvlJDIYTNFf2
FCPtgeqjMspS+NHxij399gLNdmHPOBuzwVeLnnfyVAkFHhntrBNGUQ3XLf2q93BdRxDSsU4=
</Signature>
</Certificate>
|
Modified client/1.0/neutral/pkgr_upload.eagle.harpy.asc
from [19412242bb]
to [69610e8531].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository
iQIcBAABCAAGBQJYV1qpAAoJEFAslq9JXcLZ1pMQAISOMNMTqtogHUMFqsnNevUV
HMCgTAqXiAhvhnGtVdUJHCqjGM2mpcmrfN6Yd8bA1lb18S3+J6hLpHArcSAS+SZh
g0pmepb+48k6T+2TB1owiZYOLYMOzvlCUDQPDTMmCuCEJlATtowgci4CBfJ9L26D
RvYhQTiPt1S8XLpH7/KvMXjaenNs6Mmcwm35A9aW8AVxC6khKe5yQ8eExtLYLIW6
qJOv2Iis6mcxkb02psqDcHOhMMg+rhpWCxPOjL85xkacoiBPM7CsKfWCPSVO+fXF
UZyYoifqlBrYFD+rynGHuAl7TICIRraM/o542spj3wJ8Zinfk+AtizFSOaGs1au9
XQ84qfCvnoMiP5cwv58wt/1/YF0Z2VwMIZjWfz6G7gXZRRevID4pQyyWVQGLDZQs
2UsSZ9KmaZPJfn9egyz579kEwpPwv5AU8Q7Qcx5DdHJoDaqAI2J+Idk97GHFNv/D
hTmNdsJyFpEucwVIJpdK6n00vG0OFsrtkQwEvCx4O+sDEeQ7wtdD6TwLSJimmnXk
NttnWjTJ9fxYXUjWFxQVNTICf55nri6I1XxIC5DLGfch6ObCF7z8KK8BQ4oEOg6T
OVpbz/eJbP4qkH4rCboX3CZbrL0FASaacjjMyduhx2whcwSLXFdQpQ9tH5TUsVLc
VRnkyutCYQ1ecBpk+9bu
=9XRy
iQIcBAABCAAGBQJYWDTTAAoJEFAslq9JXcLZbcwP/0FKdoE5f5LG2ucL4ZnW8vH9
qi1UwJgUnkvHy82ILxuJ9Tr4Oj3WWELvvcv6P8ujMSE9zzK69NhXiy8LJfL8FVc0
q+X79V1Dw51g3LGXQ+V/hYpegWKoVZ2qpXK2K1BfCo3ymjDuEoxE/YinGfdJGbTr
ShfZtAL9UtuoD89Z9aGxD2Pt9Rtao31BxwTh3/m+UFEkS8KosmZ9eG7QmVM9ZtlL
Y2uXiVYQOd9lz0mG59SMItDJsgK1QY1+km2o5NBnQDN9wA0UF0kQE6coyyGlORwq
lWTTvCRnsl9jjmQ52+2QuctOuVrQ7MZ4bQ44elCYyB31yFUyeX+O7fM+aAXWq3L8
uvNHAsd/5UOflSqQEUFroZt7OGpXpl9go22vG4OxEWZxA6Q/GoHwGFBL68DLvCWG
wEyKIOOTtFOAv4vK+su44f3AFBabBcufgd1qCTrHVq0pGze+P/c+1EGY60J/0gUP
5TSDXYYeDX2kQIpf7aAhSQ64YYxtOBQoVY9u0YeqhqbUuacddYdG2m4Q+EygmRBY
t0FYFOnODTU7M80/8PGMoZhYB33EtkxG0WaIPagPTpCpm1zstljIE1DGW6A/zmF6
ChU3LVAE1HexG8JHz++d2HWLhH+8x0ZbvqLf/g39YU/W8FYR6CZ02N4+zXSnhWTe
+/X4aHGlI93NwC0qSJAZ
=K/EX
-----END PGP SIGNATURE-----
|