summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/prosper/img/red-bullet-on-blue.ps
blob: 6bbfe37fe648ec014257b920eca2660606b54269 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /export/home/goualard/TEMP/bullet-one.ps
%%Creator: XV Version 3.10  Rev: 12/16/94  -  by John Bradley
%%BoundingBox: 276 376 336 416
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog

%%Page: 1 1

% remember original state
/origstate save def

% build a temporary dictionary
20 dict begin

% define space for color conversions
/grays 60 string def  % space for gray scale line
/npixls 0 def
/rgbindx 0 def

% lower left corner
276 376 translate

% size of image (on paper, in 1/72inch coords)
59.97600 40.03200 scale

% define 'colorimage' if it isn't defined
%   ('colortogray' and 'mergeprocs' come from xwd2ps
%     via xgrab)
/colorimage where   % do we know about 'colorimage'?
  { pop }           % yes: pop off the 'dict' returned
  {                 % no:  define one
    /colortogray {  % define an RGB->I function
      /rgbdata exch store    % call input 'rgbdata'
      rgbdata length 3 idiv
      /npixls exch store
      /rgbindx 0 store
      0 1 npixls 1 sub {
        grays exch
        rgbdata rgbindx       get 20 mul    % Red
        rgbdata rgbindx 1 add get 32 mul    % Green
        rgbdata rgbindx 2 add get 12 mul    % Blue
        add add 64 idiv      % I = .5G + .31R + .18B
        put
        /rgbindx rgbindx 3 add store
      } for
      grays 0 npixls getinterval
    } bind def

    % Utility procedure for colorimage operator.
    % This procedure takes two procedures off the
    % stack and merges them into a single procedure.

    /mergeprocs { % def
      dup length
      3 -1 roll
      dup
      length
      dup
      5 1 roll
      3 -1 roll
      add
      array cvx
      dup
      3 -1 roll
      0 exch
      putinterval
      dup
      4 2 roll
      putinterval
    } bind def

    /colorimage { % def
      pop pop     % remove 'false 3' operands
      {colortogray} mergeprocs
      image
    } bind def
  } ifelse          % end of 'false' case



% define the colormap
/cmap 687 string def


% load up the colormap
currentfile cmap readhexstring
040e24 840a0c 1c3674 440e0c 5c3a6c 241214 2c4e9c 44224c c40604 640e0c 
841e3c a40604 445694 0c1a34 3c3e74 540e0c 24122c 3c5aac 6c1634 b40604 
841634 544a8c 14121c 24428c 740a0c 142a5c 44163c 940a04 340e14 2c4eac 
4456ac 244284 44121c e40204 74366c 642a54 1c1a34 34122c 345abc 6c4a8c 
14122c 0c123c 1c2a4c 34121c d40204 ac0604 242e5c 0c1a3c 541634 b40a1c 
54529c 1c3264 0c162c 2c3a64 4c0e0c 14224c 445aac 0c0e24 8c0a0c 243e84 
3c4e94 741634 94122c 1c1214 2c4a99 9c0608 742a54 3c5abd 1c3a7c 6c0a0c 
4c5a9c bc0604 7c0a0c 1c2a5c 3c0e10 a4122c 6c4284 342e58 5c52a0 54467c 
2c1214 c40a14 4c5294 444a94 441a3c 4c52ac 344274 7c1229 ac0a14 9c0a14 
441211 3452a4 4c2e64 cc0204 1c223f a40a06 5c0e0d 2c1230 3c5eb1 2c4694 
740e1c 4c122c 3452ac 4c1220 345ec4 1c122c 3c1220 dc0204 ac0a0a 5452ac 
4c120f 142653 3456b7 0c122c 8c0e10 741e44 842e5c 34224c 644284 841a44 
4c427c 641e44 541a3c 941a3c 742e64 f40204 3c56a0 7c1a44 2c1e44 3c3264 
24366c 8c122c 5c4e90 7c366c 3c122c 5c122c bc0a1c 9c122c 84224c 24163c 
2c4284 741234 1c1224 6c0e1c 1c2e6c 4c56a4 344684 543264 4c163c 6c2e64 
141a30 2c2e64 243a7e 5c1224 4c4a8c 7c2e5c 643a6c 443e74 ec0204 1c3274 
2c4aa4 342e64 3c1a3c 3c224c 6c1e44 041229 2c52a4 141624 244694 740e0f 
2c52ae 1c1e3c 341634 0c1634 0c1e42 b40e24 54569c 0c1223 9c0a0b 3c5ebc 
6c0e0d bc0a0c 1c2e62 3c1212 6c4688 141e42 ac0e20 4c56ad cc0605 1c2644 
1c1632 64468c 243a74 341214 d40604 7c0e0c 4c3264 dc0604 2c4684 1c1624 
840a14 440e14 24121c 2c4ea4 640e14 a4060c 540e14 3c5ab4 b4060c 141224 
244294 142a64 940a0c a40e24 4456b4 441224 345ac4 1c2a54 341224 ac060c 
5452a4 1c326c 4c0e14 6c122c 142254 2c56b4 445ab4 8c0a14 1c121c 
pop pop   % lose return values from readhexstring


% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
  /buffer 1 string def
  /rgbval 3 string def
  /block  384 string def

  % proc to read a block from file, and return RGB data
  { currentfile buffer readhexstring pop
    /bcount exch 0 get store
    bcount 128 ge
    {  % it's a non-run block
      0 1 bcount 128 sub
      { currentfile buffer readhexstring pop pop

        % look up value in color map
        /rgbval cmap buffer 0 get 3 mul 3 getinterval store

        % and put it in position i*3 in block
        block exch 3 mul rgbval putinterval
      } for
      block  0  bcount 127 sub 3 mul  getinterval
    }

    { % else it's a run block
      currentfile buffer readhexstring pop pop

      % look up value in colormap
      /rgbval cmap buffer 0 get 3 mul 3 getinterval store

      0 1 bcount { block exch 3 mul rgbval putinterval } for

      block 0 bcount 1 add 3 mul getinterval
    } ifelse
  } % end of proc
  false 3 colorimage
} bind def


60 40 8			% dimensions of data
[60 0 0 -40 0 40]		% mapping matrix
rlecmapimage

8e68d868d868d868d868d868d868d868016881d8688568d868d868d891d868d868d868d8
68d868d868d868d868d86801688ed868d868d868d868d868d868d868d8
8e68d868d868d868d868d868d868d8688268d8688668d868d868d8688868d868d868d868
d8688868d868d868d868d8689068d868d868d868d868d868d868d868d868
88d868d868d868d868d887d868d868d868d868016895d868d868d868d868d868d868d868
d868d868d868d8689268d868d868d868d868d868d868d868d868d868
88d868d868d868d868d888d868d868d868d868d888d868d868d843e2d6bb81bbdc03dc84
6dbbd643d881d868026890d868d868d868d868d868d868d868d868d8
a868d868d868d868d868d868d868d868d868d868d868d8cf918404237912df8d3d734222
b8dcd6d868d801d89068d868d868d868d868d868d868d868d868
a868d868d868d868d868d868d868d868d868d868d8cfbb9a5c94878fc3e3d4b25f59d414
7f95764ed6d892d868d868d868d868d868d868d868d868d868d8
9fd868d868d868d868d868d868d868d868d868d8e232c465878f64c8e3d441cddb9bdb31
db58d5839b27bbd868d868d868d868d868d868d868d868d868d8
9f68d868d868d868d868d868d868d868d868d8e29aa365cca948013ab2410b2d13821347
0801088688898a4c6d43d88fd868d868d868d868d868d868d868d868
8dd868d868d868d868d868d868d8689168d868e278a26560b44801721b415f2d13478247
085d985dc2bc51ba77856dd868d868d868d868d868d868d868d868d8
9ed868d868d868d868d868d868d868d8684353ac67604518c3013a1bb20bdb478647085d
2cc52c6b956bbc887b4c55d868d868d868d868d868d868d868d868
016888d868d868d868d868d899d868d868434675d7cecc451848013a410b2dd047085d2c
c26b2196216bc5bcaf8a27d6d868d868d868d868d868d868d868d8
81d8688868d868d868d868d8688c68d868d8388125de6009b4180181011b881bcd2dd047
082cc22181219e019e86216b514b746dd88dd868d868d868d868d868d868d868
9768d868d868d868d868d868d868d8b35361c9ce600918a90184011b415f138713085d2c
6b219e7d817d9e879e21c2513e76d6d88cd868d868d868d868d868d868d8
a468d868d868d868d868d868d868263897dadece6009a918013ad45f0bdb4708bcc2c521
9e7d017d949e216b5dba7c4e4368d868d868d868d868d868d868
87d868d868d868d8688168d881d8689068269169da6e0f6009b448013a1bb20b13871308
bc2c6b219e7d017d819e6b926bbc317f4cd6d868d868d868d868d868d868d8
89d868d868d868d868d8689968d868cf0e106a03de6009a918483a1bb20b6c1347085dc5
219e849e7d9e216b926bbcb53e85d668d868d868d868d868d868d868
8868d868d868d868d8688968d868d8cf97506a360f850f094518483a853a410b2d130884
08c22c6b210221946bc55dbc47898adcd868d868d868d868d868d868d8
8868d868d868d868d8689468d868d8628050b703360f09b41848013a41b2db13861308bc
5d2cc56b016b94c52c5d08475f0a5568d868d868d868d868d868d868
85d868d868d86801688bd868d868d811242bc15ade608c600918c3013a1bb20b2d134708
8408c22cc22c812cbc93bc0847d0db144ed868d868d868d868d868d868d8
87d868d868d868d8689968d868d8681169504a03360f6009b41848013a41b22ddb134708
010802bc0108014790d0db57dc68d868d868d868d868d868d868
9e68d868d868d868d868d868d868116950c1b7030f6009451848013a1bb2412d812d1382
1347080208024791d0db5f57dcd868d868d868d868d868d868d8
a168d868d868d868d868d868d868cfbe05c14a5a360f6009b41848013a1b415f0bdb1303
13834713d02d912dcdd43d5568d868d868d868d868d868d868
9ad868d868d868d868d868d868d8cf5eca50c103de36600945a948018c013a1b41cd0bcd
2dd02d13db2d892dcd5fb272a46d68e1688968d868d868d868d868d8
9968d868d868d868d868d868d868622e8e50c1b75a360f6009b4188218013a813ad488d4
b25f0bcd0bcd2d0b870bb2413a5723bb68016889d868d868d868d868d868
9bd868d868d868d868d868d868d8265628ca504a5a03360f600945a9488248013a833a1b
d4b204b2011b91d4c8879cbbd868d868d868d868d868d868d8
8bd868d868d868d868d868e1d88cd8260c293f50c14a5ade366009830945a9488248013a
013a871bd41bd41bd41b3a913a647abf4368d868d868d868d868d868d868
8168d889d868d8e1d8e168e1d8e18de1707eb68e0550c14a5a36ce0f0984094518a94881
48010101033a0301908f939143d868d868d868d868d868d868d8
01d88168e103e182aae1aa01aa01a68392b13f508650c14a03360f6084600945b4188118
480248820148018201481891183015cfd868d868d868d868d868d868d868
01d882e1d8e182e1aa1d811da08aa0a8a04063c62aa70550c184c1b703360f820f600983
0945b41801188348a94818011892b4875c5543d868d868d868d868d868d868d868
01e182aa1da087a0a8d2171f443b448144c08bc03596160550c14ab703de0f810f608160
0901098145b498b4a9b4a945cc99074e43d868d868d868d868d868d868d868d8
86701da0a8d244028e02ddd3b619491949192abd163f05508550b74a5a033681360f820f
6009060993ce1a9ae22668d868d868d868d868d868d868d868
87aaa0d2449f90d36f846f37aeb9ae89aeb92fb996c7163f05508750c1b74a5a366e0f03
0f026095ce67544f38d868d868d868d868d868d868d868d868d8
87a0a844dd1937ae2f812fad83ad34a5718371a5713481341682163f05880550c11c4a5a
035a3683360f360f970fde86759ad64368d868d868d868d868d868d868d868d868
85403b02d3e02f832fad34a583a500390082003900010002b1013f8105508550c11cb74a
5a9b5ac9204a6aac81b0cfd868d868d868d868d868d868d868d868d868d8
8640d202d3e0aead84ad71a5b10086003900390039008100b181b1d184d116e405508150
c101c18b2bda618ba15338cf4368d8688f68d868d868d868d868d868d868d868d8
87a06344dd19e0b92f862f34ad34b171b101b181a5340134010d82b95eab83ab24be698e
698b804d9d52384368d868d868d8688e68d868d868d868d868d868d868d868
87aa40d2980233196f826f37ae04ae84b9aeb9ae378c37d919b682c08c923c0c7e1e1188
11cf432668d868d8688168d88ed868d868d868d868d868d868d868d8
86701da0a81744028202ddb601b68119498549d9194919b68bb6dd0244981fa84066e126
d89bd868d868d868d868d868d868d868d868d868d868d868d868d868d868
8826e1661dcb40a8d23b813b44824498448544984498443b813b17831763a8cb81cbaa83
aad8e1d88dd868d868d868d868d868d868d8688d68d868d868d868d868d868d868d8
0126017001aa835bcb0640034002638240634001408106aa89aa66e17026d868d868d899
d868d868d868d868d868d868d868d868d868d868d868d868d868

%
% Compression made this file 35.89% of the uncompressed size.
%


showpage

% stop using temporary dictionary
end

% restore original state
origstate restore

%%Trailer