Print this page
Add libRLike.so itself
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/lib/Makefile
+++ new/usr/src/lib/Makefile
1 1 #
2 2 # CDDL HEADER START
3 3 #
4 4 # The contents of this file are subject to the terms of the
5 5 # Common Development and Distribution License (the "License").
6 6 # You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 # If applicable, add the following below this CDDL HEADER, with the
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 21
22 22 #
23 23 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
24 24 # Copyright (c) 2012 by Delphix. All rights reserved.
25 25 # Copyright (c) 2012, Joyent, Inc. All rights reserved.
26 26 # Copyright (c) 2013 Gary Mills
27 27 # Copyright 2014 Garrett D'Amore <garrett@damore.org>
28 28 # Copyright (c) 2015 Gary Mills
29 29 # Copyright 2015 Nexenta Systems, Inc. All rights reserved.
30 30 #
31 31
32 32 include ../Makefile.master
33 33
34 34 # Note that libcurses installs commands along with its library.
35 35 # This is a minor bug which probably should be fixed.
36 36 # Note also that a few extra libraries are kept in cmd source.
37 37 #
38 38 # Certain libraries are linked with, hence depend on, other libraries.
39 39 # Library dependencies are called out explicitly, see "Library
40 40 # interdependencies" below.
41 41 .PARALLEL:
42 42
43 43 # Build libc and its dependencies
44 44 SUBDIRS= \
45 45 common \
46 46 ../cmd/sgs/libconv \
47 47 ../cmd/sgs/libdl \
48 48 libc \
49 49 .WAIT
50 50
51 51 # Build libraries with lots of dependents
52 52 SUBDIRS += \
53 53 libm \
54 54 libmd \
55 55 libmp \
56 56 libnsl \
57 57 libnvpair \
58 58 libsocket \
59 59 .WAIT
60 60
61 61 # Build everything else. Aside from explicit dependencies, all libraries
62 62 # are built in parallel.
63 63 SUBDIRS += \
64 64 ../cmd/sendmail/libmilter \
65 65 ../cmd/sgs/libelf \
66 66 ../cmd/sgs/librtld_db \
67 67 abi \
68 68 auditd_plugins \
69 69 brand \
70 70 c_synonyms \
71 71 cfgadm_plugins \
72 72 crypt_modules \
73 73 extendedFILE \
74 74 fm \
75 75 getloginx \
76 76 gss_mechs/mech_dh \
77 77 gss_mechs/mech_dummy \
78 78 gss_mechs/mech_krb5 \
79 79 gss_mechs/mech_spnego \
80 80 hal \
81 81 hbaapi \
82 82 krb5 \
83 83 libadm \
84 84 libads \
85 85 libadt_jni \
86 86 libadutils \
87 87 libaio \
88 88 libast \
89 89 libavl \
90 90 libbe \
91 91 libbrand \
92 92 libbsdmalloc \
93 93 libbsm \
94 94 libc_db \
95 95 libcfgadm \
96 96 libcmd \
97 97 libcmdutils \
98 98 libcommputil \
99 99 libcontract \
100 100 libcpc \
101 101 libcrypt \
102 102 libcryptoutil \
103 103 libctf \
104 104 libcurses \
105 105 libdevice \
106 106 libdevid \
107 107 libdevinfo \
108 108 libdhcpagent \
109 109 libdhcputil \
110 110 libdisasm \
111 111 libdiskmgt \
112 112 libdladm \
113 113 libdll \
114 114 libdlpi \
115 115 libdns_sd \
116 116 libdoor \
117 117 libdscfg \
118 118 libdtrace \
119 119 libdtrace_jni \
120 120 libefi \
121 121 libelfsign \
122 122 libeti \
123 123 libexacct \
124 124 libexacct/demo \
125 125 libfakekernel \
126 126 libfcoe \
127 127 libfru \
128 128 libfruutils \
129 129 libfsmgt \
130 130 libfstyp \
131 131 libgen \
132 132 libgrubmgmt \
133 133 libgss \
134 134 libhotplug \
135 135 libidmap \
136 136 libilb \
137 137 libima \
138 138 libinetsvc \
139 139 libinetutil \
140 140 libinstzones \
141 141 libintl \
142 142 libipadm \
143 143 libipd \
144 144 libipmi \
145 145 libipmp \
146 146 libipp \
147 147 libipsecutil \
148 148 libiscsit \
149 149 libkmf \
150 150 libkrb5 \
151 151 libkstat \
152 152 libkvm \
153 153 libldap5 \
154 154 liblgrp \
155 155 liblm \
156 156 libm1 \
157 157 libmail \
158 158 libmalloc \
159 159 libmapid \
160 160 libmapmalloc \
161 161 libmd5 \
162 162 libmtmalloc \
163 163 libmvec \
164 164 libndmp \
165 165 libnisdb \
166 166 libnls \
167 167 libnsctl \
168 168 libnwam \
169 169 libpam \
170 170 libpcidb \
171 171 libpctx \
172 172 libpicl \
173 173 libpicltree \
174 174 libpkg \
175 175 libpool \
176 176 libpp \
|
↓ open down ↓ |
176 lines elided |
↑ open up ↑ |
177 177 libproc \
178 178 libproject \
179 179 libpthread \
180 180 libraidcfg \
181 181 librcm \
182 182 librdc \
183 183 libreparse \
184 184 libresolv \
185 185 libresolv2 \
186 186 librestart \
187 + libRLike \
187 188 librpcsvc \
188 189 librsm \
189 190 librstp \
190 191 librt \
191 192 libsasl \
192 193 libscf \
193 194 libsched \
194 195 libsctp \
195 196 libsec \
196 197 libsecdb \
197 198 libsendfile \
198 199 libshare \
199 200 libshell \
200 201 libsip \
201 202 libsldap \
202 203 libslp \
203 204 libsmbfs \
204 205 libsmbios \
205 206 libsmedia \
206 207 libsqlite \
207 208 libsrpt \
208 209 libstmf \
209 210 libstmfproxy \
210 211 libsum \
211 212 libsun_ima \
212 213 libsys \
213 214 libsysevent \
214 215 libtecla \
215 216 libtermcap \
216 217 libthread \
217 218 libtnf \
218 219 libtnfctl \
219 220 libtnfprobe \
220 221 libtsnet \
221 222 libtsol \
222 223 libumem \
223 224 libunistat \
224 225 libuuid \
225 226 libuutil \
226 227 libvolmgt \
227 228 libvrrpadm \
228 229 libvscan \
229 230 libw \
230 231 libwanboot \
231 232 libwanbootutil \
232 233 libwrap \
233 234 libxcurses \
234 235 libxcurses2 \
235 236 libxnet \
236 237 libzfs \
237 238 libzfs_core \
238 239 libzfs_jni \
239 240 libzonecfg \
240 241 libzoneinfo \
241 242 libzonestat \
242 243 libzpool \
243 244 lvm \
244 245 madv \
245 246 mpapi \
246 247 mpss \
247 248 nametoaddr \
248 249 ncad_addr \
249 250 nsswitch \
250 251 pam_modules \
251 252 passwdutil \
252 253 pkcs11 \
253 254 policykit \
254 255 print \
255 256 pylibbe \
256 257 pysolaris \
257 258 pyzfs \
258 259 raidcfg_plugins \
259 260 rpcsec_gss \
260 261 sasl_plugins \
261 262 scsi \
262 263 smbsrv \
263 264 smhba \
264 265 sun_fc \
265 266 sun_sas \
266 267 udapl \
267 268 watchmalloc \
268 269 $($(MACH)_SUBDIRS)
269 270
270 271 i386_SUBDIRS= \
271 272 libfdisk \
272 273 libsaveargs
273 274
274 275 sparc_SUBDIRS= \
275 276 efcode \
276 277 libds \
277 278 libdscp \
278 279 libprtdiag \
279 280 libprtdiag_psr \
280 281 libpri \
281 282 librsc \
282 283 storage \
283 284 libpcp \
284 285 libtsalarm \
285 286 libv12n
286 287
287 288 #
288 289 # Create a special version of $(SUBDIRS) with no .WAIT's, for use with the
289 290 # clean and clobber targets (for more information, see those targets, below).
290 291 #
291 292 NOWAIT_SUBDIRS= $(SUBDIRS:.WAIT=)
292 293
293 294 DCSUBDIRS = \
294 295 lvm
295 296
296 297 MSGSUBDIRS= \
297 298 abi \
298 299 auditd_plugins \
299 300 brand \
300 301 cfgadm_plugins \
301 302 gss_mechs/mech_dh \
302 303 gss_mechs/mech_krb5 \
303 304 krb5 \
304 305 libast \
305 306 libbsm \
306 307 libc \
307 308 libcfgadm \
308 309 libcmd \
309 310 libcontract \
310 311 libcurses \
311 312 libdhcputil \
312 313 libdiskmgt \
313 314 libdladm \
314 315 libdll \
315 316 libgrubmgmt \
316 317 libgss \
317 318 libidmap \
318 319 libilb \
319 320 libinetutil \
320 321 libinstzones \
321 322 libipadm \
322 323 libipmp \
323 324 libipsecutil \
324 325 libldap5 \
325 326 libnsl \
326 327 libnwam \
327 328 libpam \
328 329 libpicl \
329 330 libpkg \
330 331 libpool \
331 332 libpp \
332 333 libreparse \
333 334 libsasl \
334 335 libscf \
335 336 libsecdb \
336 337 libshare \
337 338 libshell \
338 339 libsldap \
339 340 libslp \
340 341 libsmbfs \
341 342 libsmedia \
342 343 libsum \
343 344 libtsol \
344 345 libuutil \
345 346 libvrrpadm \
346 347 libvscan \
347 348 libwanboot \
348 349 libwanbootutil \
349 350 libzfs \
350 351 libzonecfg \
351 352 lvm \
352 353 madv \
353 354 mpss \
354 355 pam_modules \
355 356 pyzfs \
356 357 rpcsec_gss \
357 358 $($(MACH)_MSGSUBDIRS)
358 359
359 360 sparc_MSGSUBDIRS= \
360 361 libprtdiag \
361 362 libprtdiag_psr
362 363
363 364 i386_MSGSUBDIRS= libfdisk
364 365
365 366 HDRSUBDIRS= \
366 367 ../cmd/sendmail/libmilter \
367 368 auditd_plugins \
368 369 fm \
369 370 hal \
370 371 hbaapi \
371 372 libads \
372 373 libast \
373 374 libbrand \
374 375 libbsm \
375 376 libc \
376 377 libcmd \
377 378 libcmdutils \
378 379 libcommputil \
379 380 libcontract \
380 381 libcpc \
381 382 libcryptoutil \
382 383 libctf \
383 384 libcurses \
384 385 libdevice \
385 386 libdevid \
386 387 libdevinfo \
387 388 libdhcpagent \
388 389 libdhcputil \
389 390 libdisasm \
390 391 libdiskmgt \
391 392 libdladm \
392 393 libdll \
393 394 libdlpi \
394 395 libdns_sd \
395 396 libdscfg \
396 397 libdtrace \
397 398 libdtrace_jni \
398 399 libelfsign \
399 400 libeti \
400 401 libfakekernel \
401 402 libfcoe \
402 403 libfru \
403 404 libfstyp \
404 405 libgen \
405 406 libgrubmgmt \
406 407 libidmap \
407 408 libilb \
408 409 libima \
409 410 libinetsvc \
410 411 libinetutil \
411 412 libinstzones \
412 413 libipadm \
413 414 libipd \
414 415 libipmi \
415 416 libipmp \
416 417 libipp \
417 418 libipsecutil \
418 419 libiscsit \
419 420 libkrb5 \
420 421 libkstat \
421 422 libkvm \
422 423 libmail \
423 424 libmapid \
424 425 libmd \
425 426 libmtmalloc \
426 427 libndmp \
427 428 libnsctl \
428 429 libnsl \
429 430 libnvpair \
430 431 libnwam \
431 432 libpam \
432 433 libpcidb \
433 434 libpctx \
434 435 libpicl \
435 436 libpicltree \
436 437 libpool \
437 438 libpp \
438 439 libproc \
439 440 libraidcfg \
440 441 librcm \
441 442 librdc \
442 443 libreparse \
443 444 librestart \
444 445 librpcsvc \
445 446 librsm \
446 447 librstp \
447 448 libsasl \
448 449 libscf \
449 450 libsec \
450 451 libshare \
451 452 libshell \
452 453 libsip \
453 454 libslp \
454 455 libsmbfs \
455 456 libsmbios \
456 457 libsmedia \
457 458 libsocket \
458 459 libsqlite \
459 460 libsrpt \
460 461 libstmf \
461 462 libstmfproxy \
462 463 libsum \
463 464 libsun_ima \
464 465 libsysevent \
465 466 libtecla \
466 467 libtermcap \
467 468 libtnf \
468 469 libtnfctl \
469 470 libtnfprobe \
470 471 libtsnet \
471 472 libtsol \
472 473 libumem \
473 474 libunistat \
474 475 libuutil \
475 476 libvolmgt \
476 477 libvrrpadm \
477 478 libvscan \
478 479 libwanboot \
479 480 libwanbootutil \
480 481 libwrap \
481 482 libxcurses2 \
482 483 libzfs \
483 484 libzfs_core \
484 485 libzfs_jni \
485 486 libzoneinfo \
486 487 libzonestat \
487 488 lvm \
488 489 mpapi \
489 490 passwdutil \
490 491 pkcs11 \
491 492 policykit \
492 493 scsi \
493 494 smbsrv \
494 495 smhba \
495 496 udapl \
496 497 $($(MACH)_HDRSUBDIRS)
497 498
498 499 i386_HDRSUBDIRS= \
499 500 libfdisk \
500 501 libsaveargs
501 502
502 503 sparc_HDRSUBDIRS= \
503 504 libds \
504 505 libdscp \
505 506 libpri \
506 507 libv12n \
507 508 storage
508 509
509 510 all := TARGET= all
510 511 check := TARGET= check
511 512 clean := TARGET= clean
512 513 clobber := TARGET= clobber
513 514 install := TARGET= install
514 515 install_h := TARGET= install_h
515 516 lint := TARGET= lint
516 517 _dc := TARGET= _dc
517 518 _msg := TARGET= _msg
518 519
519 520 .KEEP_STATE:
520 521
521 522 #
522 523 # For the all and install targets, we clearly must respect library
523 524 # dependencies so that the libraries link correctly. However, for
524 525 # the remaining targets (check, clean, clobber, install_h, lint, _dc
525 526 # and _msg), libraries do not have any dependencies on one another
526 527 # and thus respecting dependencies just slows down the build.
527 528 # As such, for these rules, we use pattern replacement to explicitly
528 529 # avoid triggering the dependency information. Note that for clean,
529 530 # clobber and lint, we must use $(NOWAIT_SUBDIRS) rather than
530 531 # $(SUBDIRS), to prevent `.WAIT' from expanding to `.WAIT-nodepend'.
531 532 #
532 533
533 534 all: $(SUBDIRS)
534 535
535 536 install: $(SUBDIRS) .WAIT install_extra
536 537
537 538 # extra libraries kept in other source areas
538 539 install_extra:
539 540 @cd ../cmd/sgs; pwd; $(MAKE) install_lib
540 541 @pwd
541 542
542 543 clean clobber lint: $(NOWAIT_SUBDIRS:%=%-nodepend)
543 544
544 545 install_h check: $(HDRSUBDIRS:%=%-nodepend)
545 546
546 547 _msg: $(MSGSUBDIRS:%=%-nodepend) .WAIT _dc
547 548
548 549 _dc: $(DCSUBDIRS:%=%-nodepend)
549 550
550 551 # Library interdependencies are called out explicitly here.
551 552 ../cmd/sgs/libconv: common
552 553 ../cmd/sgs/libdl: common
553 554 libc: ../cmd/sgs/libconv ../cmd/sgs/libdl
554 555
555 556 libm: libc
556 557 libmd: libc
557 558 libmp: libc
558 559 libnsl: libc libmd libmp
559 560 libnvpair: libc libnsl
560 561 libsocket: libc libnsl
561 562
562 563 basedeps: libc libm libmd libmp libnsl libnvpair libsocket
563 564 basedeps := TARGET=install
564 565
565 566 # The following dependencies don't need to be listed below as they are built
566 567 # before everything else:
567 568 # libc libm libmd libmp libnsl libnvpair libsocket
568 569 abi: libctf libmapmalloc libproc
569 570 auditd_plugins: libbsm libsecdb libgss libmtmalloc
570 571 brand: libzonecfg libmapmalloc
571 572 cfgadm_plugins: libdevice libdevinfo libhotplug librcm hbaapi libkstat libscf
572 573 fm: libexacct libipmi libzfs scsi libdevinfo libdevid libcfgadm \
573 574 libcontract libsysevent ../cmd/sgs/libelf
574 575 $(SPARC_BLD)fm: libpri
575 576 gss_mechs/mech_dh: libgss
576 577 gss_mechs/mech_dummy: libgss
577 578 gss_mechs/mech_krb5: libgss libresolv2 pkcs11 libkstat
578 579 gss_mechs/mech_spnego: gss_mechs/mech_krb5
579 580 krb5: gss_mechs/mech_krb5 libtecla libldap5
580 581 libadt_jni: libbsm
581 582 libadutils: libldap5 libresolv2
582 583 libbe: libzfs libinstzones libuuid libgen libdevinfo libefi
583 584 libbsm: libinetutil libscf libsecdb libtsol
584 585 libcfgadm: libdevinfo
585 586 libcmd: libsum libast
586 587 libcmdutils: libavl
587 588 libcpc: libpctx
588 589 libcrypt: libgen
589 590 libdevid: libdevinfo
590 591 libdevinfo: libsec libgen
591 592 libdhcpagent: libdhcputil libuuid libdlpi libcontract
592 593 libdhcputil: libgen libinetutil libdlpi
593 594 libdiskmgt: libdevid libdevinfo libadm libefi libkstat libsysevent
594 595 $(INTEL_BLD)libdiskmgt: libfdisk
595 596 libdladm: libdevinfo libinetutil libscf librcm libexacct libkstat \
596 597 libpool
597 598 libdll: libast
598 599 libdlpi: libinetutil libdladm
599 600 libds: libsysevent
600 601 libdscfg: libnsctl libunistat libadm
601 602 libdtrace: libproc libgen libctf libmapmalloc
602 603 libdtrace_jni: libuutil libdtrace
603 604 libefi: libuuid
604 605 libelfsign: libcryptoutil libkmf ../cmd/sgs/libelf
605 606 libeti: libcurses
606 607 libexacct/demo: libexacct libproject
607 608 libfakekernel: libumem libcryptoutil
608 609 libfcoe: libdladm
609 610 libfru: libfruutils
610 611 libfsmgt: libkstat
611 612 libgrubmgmt: libdevinfo libzfs libfstyp libefi
612 613 $(INTEL_BLD)libgrubmgmt: libfdisk
613 614 libidmap: libavl libuutil
614 615 libinetsvc: libscf
615 616 libinstzones: libzonecfg libcontract
616 617 libipadm: libinetutil libdlpi libdhcpagent libdladm libsecdb
617 618 libipmp: libinetutil
618 619 libipsecutil: libtecla libtsol
619 620 libiscsit: libstmf libuuid
620 621 libkmf: libcryptoutil pkcs11
621 622 libkvm: ../cmd/sgs/libelf
622 623 libldap5: libsasl
623 624 libmapid: libresolv2 libscf
624 625 libndmp: libscf
625 626 libnisdb: libldap5
626 627 libnwam: libscf libbsm libdladm
627 628 libpcp: libumem libdevinfo
628 629 libpctx: libproc
629 630 libpkg: libwanboot libscf libadm
630 631 libpool: libscf libexacct
631 632 libpp: libast
632 633 libproc: ../cmd/sgs/librtld_db ../cmd/sgs/libelf libctf
633 634 $(INTEL_BLD)libproc: libsaveargs
634 635 libproject: libpool libproc libsecdb
635 636 libprtdiag: libkstat
636 637 libprtdiag_psr: libprtdiag
637 638 libraidcfg: libdevinfo
638 639 librdc: libnsctl libunistat libdscfg
639 640 librestart: libuutil libscf libpool libproject libsecdb libsysevent
640 641 libsasl: libgss pkcs11
641 642 libsaveargs: libdisasm
642 643 libscf: libuutil libgen libsmbios
643 644 libsec: libavl libidmap
644 645 libshare: libscf libzfs libuuid libfsmgt libsecdb libumem libsmbfs
645 646 libshell: libast libcmd libdll libsecdb
646 647 libsip: libmd5
647 648 libsldap: libldap5 libscf
648 649 libsmbfs: libkrb5 libsec libidmap pkcs11
649 650 libsrpt: libstmf
650 651 libstmf: libscf
651 652 libstmfproxy: libstmf libpthread
652 653 libsum: libast
653 654 libsun_ima: libdevinfo libsysevent
654 655 libsysevent: libsecdb
655 656 libtecla: libcurses
656 657 libtermcap: libcurses
657 658 libtnfctl: ../cmd/sgs/libelf
658 659 libtsalarm: libpcp
659 660 libtsnet: libtsol libsecdb
660 661 libtsol: libsecdb
661 662 libuuid: libdlpi
662 663 libv12n: libds libuuid
663 664 libvolmgt: libadm
664 665 libvrrpadm: libdladm libscf
665 666 libvscan: libscf libsecdb
666 667 libwanboot: libresolv2 libdevinfo libinetutil libdhcputil
667 668 libzfs: libdevid libgen libuutil libadm libavl libefi libidmap \
668 669 libumem libtsol libzfs_core
669 670 libzfs_jni: libdiskmgt libzfs
670 671 libzonecfg: libuuid libsysevent libsec libbrand libpool libscf libproc \
671 672 libuutil libbsm libsecdb
672 673 libzonestat: libcmdutils libumem
673 674 libzpool: libavl libumem libcmdutils libsysevent
674 675 lvm: libadm libdevid libdevinfo libefi libgen libscf
675 676 madv: libgen
676 677 mpapi: libpthread libdevinfo libsysevent
677 678 mpss: libgen
678 679 nsswitch: libadutils libidmap libdns_sd libscf libldap5 libsldap
679 680 pam_modules: libproject passwdutil smbsrv libtsnet libpam libbsm libsecdb
680 681 passwdutil: libsldap
681 682 pkcs11: libcryptoutil libgen libuuid
682 683 policykit: libsecdb
683 684 print: libldap5 libmd5 libsendfile
684 685 pylibbe: libbe libzfs
685 686 pysolaris: libsec libidmap
686 687 pyzfs: libzfs
687 688 raidcfg_plugins: libraidcfg librcm libcfgadm libpicl libpicltree
688 689 rpcsec_gss: libgss
689 690 sasl_plugins: pkcs11 libgss libsasl
690 691 scsi: libfru libumem libdevid libdevinfo
691 692 smbsrv: libxnet libpthread librt libshare libidmap pkcs11 libsqlite \
692 693 libcryptoutil libreparse libcmdutils libresolv2 libsmbfs \
693 694 libuuid libfakekernel libads libgss libldap5 krb5
694 695 storage: libdevice libdevinfo libdevid
695 696 sun_fc: libdevinfo libsysevent
696 697 sun_sas: libdevinfo libsysevent libkstat libdevid
697 698 udapl: libdevinfo libdladm
698 699
699 700 #
700 701 # The reason this rule checks for the existence of the
701 702 # Makefile is that some of the directories do not exist
702 703 # in certain situations (e.g., exportable source builds,
703 704 # OpenSolaris).
704 705 #
705 706 $(SUBDIRS): FRC
706 707 @if [ -f $@/Makefile ]; then \
707 708 cd $@; pwd; $(MAKE) $(TARGET); \
708 709 else \
709 710 true; \
710 711 fi
711 712
712 713 $(SUBDIRS:%=%-nodepend):
713 714 @if [ -f $(@:%-nodepend=%)/Makefile ]; then \
714 715 cd $(@:%-nodepend=%); pwd; $(MAKE) $(TARGET); \
715 716 else \
716 717 true; \
717 718 fi
718 719
719 720 FRC:
|
↓ open down ↓ |
523 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX