Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.47
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
X11
[ DIR ]
drwxr-xr-x
mh
[ DIR ]
drwxr-xr-x
411toppm
18.02
KB
-rwxr-xr-x
AutoSearch
66.17
KB
-rwxr-xr-x
GET
15.82
KB
-rwxr-xr-x
HEAD
15.82
KB
-rwxr-xr-x
Mail
110.4
KB
-rwxr-xr-x
NF
963
B
-rwxr-xr-x
POST
15.82
KB
-rwxr-xr-x
SOAPsh
2.75
KB
-rwxr-xr-x
VGAuthService
134.54
KB
-rwxr-xr-x
WebSearch
11.78
KB
-rwxr-xr-x
X
274
B
-rwxr-xr-x
Xorg
274
B
-rwxr-xr-x
[
50.44
KB
-rwxr-xr-x
aa-enabled
34.52
KB
-rwxr-xr-x
aa-exec
34.52
KB
-rwxr-xr-x
aa-features-abi
30.52
KB
-rwxr-xr-x
ab
58.43
KB
-rwxr-xr-x
ac
30.95
KB
-rwxr-xr-x
ack
72.86
KB
-rwxr-xr-x
aclocal
35.18
KB
-rwxr-xr-x
aclocal-1.16
35.18
KB
-rwxr-xr-x
acorn
62
B
-rwxr-xr-x
add-apt-repository
14.14
KB
-rwxr-xr-x
add-patch
8.14
KB
-rwxr-xr-x
addftinfo
26.46
KB
-rwxr-xr-x
addpart
14.38
KB
-rwxr-xr-x
addr2line
26.7
KB
-rwxr-xr-x
addr2name
50
B
-rwxr-xr-x
afm2pl
38.53
KB
-rwxr-xr-x
afm2tfm
52.56
KB
-rwxr-xr-x
afmtodit
161.91
KB
-rwxr-xr-x
agentxtrap
26.38
KB
-rwxr-xr-x
aleph
523.81
KB
-rwxr-xr-x
alpine
6.53
MB
-rwxr-xr-x
alpinef
6.53
MB
-rwxr-xr-x
analog
443.84
KB
-rwxr-xr-x
animate
14.15
KB
-rwxr-xr-x
animate-im6
14.15
KB
-rwxr-xr-x
animate-im6.q16
14.15
KB
-rwxr-xr-x
annotate
14.15
KB
-rwxr-xr-x
annotate-output
2.19
KB
-rwxr-xr-x
anytopnm
5.55
KB
-rwxr-xr-x
appletviewer
14.32
KB
-rwxr-xr-x
apport-bug
2.51
KB
-rwxr-xr-x
apport-cli
13.05
KB
-rwxr-xr-x
apport-collect
2.51
KB
-rwxr-xr-x
apport-unpack
2.02
KB
-rwxr-xr-x
appres
14.3
KB
-rwxr-xr-x
apropos
47.28
KB
-rwxr-xr-x
apt
18.38
KB
-rwxr-xr-x
apt-add-repository
14.14
KB
-rwxr-xr-x
apt-cache
82.47
KB
-rwxr-xr-x
apt-cdrom
26.47
KB
-rwxr-xr-x
apt-config
26.39
KB
-rwxr-xr-x
apt-extracttemplates
22.47
KB
-rwxr-xr-x
apt-ftparchive
230.48
KB
-rwxr-xr-x
apt-get
50.47
KB
-rwxr-xr-x
apt-key
27.51
KB
-rwxr-xr-x
apt-mark
50.47
KB
-rwxr-xr-x
apt-sortpkgs
38.4
KB
-rwxr-xr-x
aptitude
3.36
MB
-rwxr-xr-x
aptitude-changelog-parser
522
B
-rwxr-xr-x
aptitude-create-state-bundle
1.89
KB
-rwxr-xr-x
aptitude-curses
3.36
MB
-rwxr-xr-x
aptitude-run-state-bundle
2.78
KB
-rwxr-xr-x
ar
54.48
KB
-rwxr-xr-x
arch
30.51
KB
-rwxr-xr-x
archpath
1.24
KB
-rwxr-xr-x
as
456.4
KB
-rwxr-xr-x
asciitopgm
14.02
KB
-rwxr-xr-x
aspell
142.48
KB
-rwxr-xr-x
aspell-import
2
KB
-rwxr-xr-x
at
54.32
KB
-rwsr-sr-x
atktopbm
14.02
KB
-rwxr-xr-x
atq
54.32
KB
-rwsr-sr-x
atrm
54.32
KB
-rwsr-sr-x
attr
14.3
KB
-rwxr-xr-x
autoconf
14.85
KB
-rwxr-xr-x
autoexpect
7.53
KB
-rwxr-xr-x
autoheader
8.82
KB
-rwxr-xr-x
autom4te
32.69
KB
-rwxr-xr-x
automake
255.91
KB
-rwxr-xr-x
automake-1.16
255.91
KB
-rwxr-xr-x
autopasswd
378
B
-rwxr-xr-x
autoreconf
26.3
KB
-rwxr-xr-x
autoscan
16.77
KB
-rwxr-xr-x
autosp
46.32
KB
-rwxr-xr-x
autoupdate
33.22
KB
-rwxr-xr-x
awk
688.46
KB
-rwxr-xr-x
aws
815
B
-rwxr-xr-x
aws_completer
1.11
KB
-rwxr-xr-x
axohelp
78.39
KB
-rwxr-xr-x
b2sum
50.52
KB
-rwxr-xr-x
base32
34.51
KB
-rwxr-xr-x
base64
34.51
KB
-rwxr-xr-x
basename
34.51
KB
-rwxr-xr-x
basenc
46.51
KB
-rwxr-xr-x
bash
1.33
MB
-rwxr-xr-x
bashbug
6.66
KB
-rwxr-xr-x
batch
152
B
-rwxr-xr-x
bc
90.82
KB
-rwxr-xr-x
bdf2gdfont
4.58
KB
-rwxr-xr-x
bdftogd
3.9
KB
-rwxr-xr-x
benchmark
584
B
-rwxr-xr-x
bibtex
114.38
KB
-rwxr-xr-x
bibtex.original
114.38
KB
-rwxr-xr-x
bibtex8
138.95
KB
-rwxr-xr-x
bibtexu
146.91
KB
-rwxr-xr-x
bioradtopgm
14.02
KB
-rwxr-xr-x
bison
492.8
KB
-rwxr-xr-x
bison.yacc
4.12
KB
-rwxr-xr-x
bmptopnm
18.05
KB
-rwxr-xr-x
bmptoppm
18.05
KB
-rwxr-xr-x
boltctl
122.98
KB
-rwxr-xr-x
bootctl
70.49
KB
-rwxr-xr-x
botti
613.23
KB
-rwxr-xr-x
browse
25.46
KB
-rwxr-xr-x
browserslist
4.06
KB
-rwxr-xr-x
brushtopbm
14.02
KB
-rwxr-xr-x
bsd-mailx
110.4
KB
-rwxr-xr-x
btrfs
844.13
KB
-rwxr-xr-x
btrfs-convert
483.25
KB
-rwxr-xr-x
btrfs-find-root
439.33
KB
-rwxr-xr-x
btrfs-image
467.25
KB
-rwxr-xr-x
btrfs-map-logical
439.25
KB
-rwxr-xr-x
btrfs-select-super
439.25
KB
-rwxr-xr-x
btrfsck
844.13
KB
-rwxr-xr-x
btrfstune
443.26
KB
-rwxr-xr-x
bts
139.68
KB
-rwxr-xr-x
build-rdeps
16.68
KB
-rwxr-xr-x
buildhash
46.7
KB
-rwxr-xr-x
bundle
560
B
-rwxr-xr-x
bundle3.0
529
B
-rwxr-xr-x
bundler
562
B
-rwxr-xr-x
bundler3.0
531
B
-rwxr-xr-x
bunzip2
38.38
KB
-rwxr-xr-x
busctl
90.49
KB
-rwxr-xr-x
busybox
2.09
MB
-rwxr-xr-x
byebug
539
B
-rwxr-xr-x
byobu
8.17
KB
-rwxr-xr-x
byobu-config
996
B
-rwxr-xr-x
byobu-ctrl-a
4.66
KB
-rwxr-xr-x
byobu-disable
1.26
KB
-rwxr-xr-x
byobu-disable-prompt
1.31
KB
-rwxr-xr-x
byobu-enable
1.15
KB
-rwxr-xr-x
byobu-enable-prompt
1.42
KB
-rwxr-xr-x
byobu-export
1.32
KB
-rwxr-xr-x
byobu-janitor
6.29
KB
-rwxr-xr-x
byobu-keybindings
1.47
KB
-rwxr-xr-x
byobu-launch
3.25
KB
-rwxr-xr-x
byobu-launcher
1.87
KB
-rwxr-xr-x
byobu-launcher-install
2.4
KB
-rwxr-xr-x
byobu-launcher-uninstall
1.52
KB
-rwxr-xr-x
byobu-layout
3.27
KB
-rwxr-xr-x
byobu-prompt
1.13
KB
-rwxr-xr-x
byobu-quiet
1.38
KB
-rwxr-xr-x
byobu-reconnect-sockets
3.22
KB
-rwxr-xr-x
byobu-screen
8.17
KB
-rwxr-xr-x
byobu-select-backend
1.42
KB
-rwxr-xr-x
byobu-select-profile
5
KB
-rwxr-xr-x
byobu-select-session
1012
B
-rwxr-xr-x
byobu-shell
1.56
KB
-rwxr-xr-x
byobu-silent
1.28
KB
-rwxr-xr-x
byobu-status
5.87
KB
-rwxr-xr-x
byobu-status-detail
1.18
KB
-rwxr-xr-x
byobu-tmux
8.17
KB
-rwxr-xr-x
byobu-ugraph
4.56
KB
-rwxr-xr-x
byobu-ulevel
11.71
KB
-rwxr-xr-x
bzcat
38.38
KB
-rwxr-xr-x
bzcmp
2.17
KB
-rwxr-xr-x
bzdiff
2.17
KB
-rwxr-xr-x
bzegrep
3.69
KB
-rwxr-xr-x
bzexe
4.78
KB
-rwxr-xr-x
bzfgrep
3.69
KB
-rwxr-xr-x
bzgrep
3.69
KB
-rwxr-xr-x
bzip2
38.38
KB
-rwxr-xr-x
bzip2recover
14.3
KB
-rwxr-xr-x
bzless
1.27
KB
-rwxr-xr-x
bzmore
1.27
KB
-rwxr-xr-x
c++
910.82
KB
-rwxr-xr-x
c++filt
22.27
KB
-rwxr-xr-x
c89
428
B
-rwxr-xr-x
c89-gcc
428
B
-rwxr-xr-x
c99
454
B
-rwxr-xr-x
c99-gcc
454
B
-rwxr-xr-x
c_rehash
6.8
KB
-rwxr-xr-x
cal
36.95
KB
-rwxr-xr-x
calc_tickadj
2.78
KB
-rwxr-xr-x
captoinfo
86.41
KB
-rwxr-xr-x
cat
34.46
KB
-rwxr-xr-x
catman
34.76
KB
-rwxr-xr-x
cautious-launcher
853
B
-rwxr-xr-x
cc
906.82
KB
-rwxr-xr-x
ccache-swig
54.23
KB
-rwxr-xr-x
ccache-swig4.0
54.23
KB
-rwxr-xr-x
ccze
47.52
KB
-rwxr-xr-x
ccze-cssdump
18.88
KB
-rwxr-xr-x
cgclassify
14.45
KB
-rwxr-xr-x
cgcreate
14.57
KB
-rwxr-xr-x
cgdelete
14.38
KB
-rwxr-xr-x
cgexec
14.41
KB
-rwxr-xr-x
cgget
22.38
KB
-rwxr-xr-x
cgset
14.38
KB
-rwxr-xr-x
cgsnapshot
22.54
KB
-rwxr-xr-x
chacl
22.3
KB
-rwxr-xr-x
chage
70.49
KB
-rwxr-sr-x
chardet
965
B
-rwxr-xr-x
chardetect
965
B
-rwxr-xr-x
chartex
5.68
KB
-rwxr-xr-x
chattr
14.31
KB
-rwxr-xr-x
chcon
58.51
KB
-rwxr-xr-x
chdist
20.69
KB
-rwxr-xr-x
checkbashisms
31.56
KB
-rwxr-xr-x
checkgid
14.3
KB
-rwxr-xr-x
chem
28.49
KB
-rwxr-xr-x
chfn
71.01
KB
-rwsr-xr-x
chg
34.38
KB
-rwxr-xr-x
chgrp
54.51
KB
-rwxr-xr-x
chkdvifont
30.38
KB
-rwxr-xr-x
chmod
54.51
KB
-rwxr-xr-x
choom
22.38
KB
-rwxr-xr-x
chown
58.51
KB
-rwxr-xr-x
chpst
30.43
KB
-rwxr-xr-x
chrt
26.38
KB
-rwxr-xr-x
chsh
43.76
KB
-rwsr-xr-x
chvt
14.23
KB
-rwxr-xr-x
ci
807
B
-rwxr-xr-x
cifsiostat
22.45
KB
-rwxr-xr-x
cjpeg
54.21
KB
-rwxr-xr-x
ckbcomp
146.31
KB
-rwxr-xr-x
cksum
34.41
KB
-rwxr-xr-x
clear
14.31
KB
-rwxr-xr-x
clear_console
14.23
KB
-rwxr-xr-x
clhsdb
14.34
KB
-rwxr-xr-x
clusterdb
9.21
KB
-rwxr-xr-x
cmp
42.39
KB
-rwxr-xr-x
cmuwmtopbm
14.02
KB
-rwxr-xr-x
co
807
B
-rwxr-xr-x
codepage
14.15
KB
-rwxr-xr-x
col
22.38
KB
-rwxr-xr-x
col1
963
B
-rwxr-xr-x
col2
963
B
-rwxr-xr-x
col3
963
B
-rwxr-xr-x
col4
963
B
-rwxr-xr-x
col5
963
B
-rwxr-xr-x
col6
963
B
-rwxr-xr-x
col7
963
B
-rwxr-xr-x
col8
963
B
-rwxr-xr-x
col9
963
B
-rwxr-xr-x
colcrt
14.38
KB
-rwxr-xr-x
colorit
4.06
KB
-rwxr-xr-x
colrm
14.38
KB
-rwxr-xr-x
column
34.38
KB
-rwxr-xr-x
combinediff
50.89
KB
-rwxr-xr-x
comm
34.52
KB
-rwxr-xr-x
compare
14.15
KB
-rwxr-xr-x
compare-im6
14.15
KB
-rwxr-xr-x
compare-im6.q16
14.15
KB
-rwxr-xr-x
compile_et
1.32
KB
-rwxr-xr-x
compose
18.06
KB
-rwxr-xr-x
composite
14.15
KB
-rwxr-xr-x
composite-im6
14.15
KB
-rwxr-xr-x
composite-im6.q16
14.15
KB
-rwxr-xr-x
config_data
6.97
KB
-rwxr-xr-x
conjure
14.15
KB
-rwxr-xr-x
conjure-im6
14.15
KB
-rwxr-xr-x
conjure-im6.q16
14.15
KB
-rwxr-xr-x
convert
14.15
KB
-rwxr-xr-x
convert-im6
14.15
KB
-rwxr-xr-x
convert-im6.q16
14.15
KB
-rwxr-xr-x
corelist
15.01
KB
-rwxr-xr-x
cover
20.96
KB
-rwxr-xr-x
cowpoke
16.34
KB
-rwxr-xr-x
cp
138.51
KB
-rwxr-xr-x
cpan
8.16
KB
-rwxr-xr-x
cpan5.34-x86_64-linux-gnu
8.18
KB
-rwxr-xr-x
cpancover
5.49
KB
-rwxr-xr-x
cpanel_json_xs
9.76
KB
-rwxr-xr-x
cpio
141.64
KB
-rwxr-xr-x
cpp
906.82
KB
-rwxr-xr-x
cpp-11
906.82
KB
-rwxr-xr-x
cpp-12
1.32
MB
-rwxr-xr-x
crc32
1.04
KB
-rwxr-xr-x
createdb
9.21
KB
-rwxr-xr-x
createlang
9.21
KB
-rwxr-xr-x
createuser
9.21
KB
-rwxr-xr-x
crontab
38.64
KB
-rwxr-sr-x
cryptdir
1.44
KB
-rwxr-xr-x
csh
425.4
KB
-rwxr-xr-x
csplit
106.51
KB
-rwxr-xr-x
ctags
301.78
KB
-rwxr-xr-x
ctags-exuberant
301.78
KB
-rwxr-xr-x
ctags.emacs
155.2
KB
-rwxr-xr-x
ctail
960
B
-rwxr-xr-x
ctangle
50.91
KB
-rwxr-xr-x
ctie
18.4
KB
-rwxr-xr-x
ctstat
22.66
KB
-rwxr-xr-x
ctwill
99
KB
-rwxr-xr-x
ctwill-refsort
14.3
KB
-rwxr-xr-x
ctwill-twinx
14.3
KB
-rwxr-xr-x
curl
254.23
KB
-rwxr-xr-x
curl-config
6.52
KB
-rwxr-xr-x
cut
38.51
KB
-rwxr-xr-x
cvs
829.46
KB
-rwxr-xr-x
cvs-debc
11.8
KB
-rwxr-xr-x
cvs-debi
11.8
KB
-rwxr-xr-x
cvs-debrelease
11.95
KB
-rwxr-xr-x
cvs-debuild
6.84
KB
-rwxr-xr-x
cvs-switchroot
2.47
KB
-rwxr-xr-x
cvsps
82.29
KB
-rwxr-xr-x
cvtsudoers
296.4
KB
-rwxr-xr-x
cweave
95
KB
-rwxr-xr-x
daemon
121.3
KB
-rwxr-xr-x
darcs
22.52
MB
-rwxr-xr-x
dash
122.74
KB
-rwxr-xr-x
date
102.51
KB
-rwxr-xr-x
db5.3_archive
14.02
KB
-rwxr-xr-x
db5.3_checkpoint
14.02
KB
-rwxr-xr-x
db5.3_deadlock
14.02
KB
-rwxr-xr-x
db5.3_dump
18.02
KB
-rwxr-xr-x
db5.3_hotbackup
18.02
KB
-rwxr-xr-x
db5.3_load
26.02
KB
-rwxr-xr-x
db5.3_log_verify
14.02
KB
-rwxr-xr-x
db5.3_printlog
34.02
KB
-rwxr-xr-x
db5.3_recover
14.02
KB
-rwxr-xr-x
db5.3_replicate
14.02
KB
-rwxr-xr-x
db5.3_stat
18.02
KB
-rwxr-xr-x
db5.3_upgrade
14.02
KB
-rwxr-xr-x
db5.3_verify
14.02
KB
-rwxr-xr-x
db_archive
14.02
KB
-rwxr-xr-x
db_checkpoint
14.02
KB
-rwxr-xr-x
db_deadlock
14.02
KB
-rwxr-xr-x
db_dump
18.02
KB
-rwxr-xr-x
db_hotbackup
18.02
KB
-rwxr-xr-x
db_load
26.02
KB
-rwxr-xr-x
db_log_verify
14.02
KB
-rwxr-xr-x
db_printlog
34.02
KB
-rwxr-xr-x
db_recover
14.02
KB
-rwxr-xr-x
db_replicate
14.02
KB
-rwxr-xr-x
db_stat
18.02
KB
-rwxr-xr-x
db_upgrade
14.02
KB
-rwxr-xr-x
db_verify
14.02
KB
-rwxr-xr-x
dbilogstrip
1.35
KB
-rwxr-xr-x
dbiprof
6.06
KB
-rwxr-xr-x
dbiproxy
5.27
KB
-rwxr-xr-x
dbus-cleanup-sockets
14.29
KB
-rwxr-xr-x
dbus-daemon
227.32
KB
-rwxr-xr-x
dbus-monitor
26.29
KB
-rwxr-xr-x
dbus-run-session
14.29
KB
-rwxr-xr-x
dbus-send
26.29
KB
-rwxr-xr-x
dbus-update-activation-environ...
14.29
KB
-rwxr-xr-x
dbus-uuidgen
14.29
KB
-rwxr-xr-x
dc
46.24
KB
-rwxr-xr-x
dch
65.04
KB
-rwxr-xr-x
dcmd
9.94
KB
-rwxr-xr-x
dd
66.52
KB
-rwxr-xr-x
dd-list
9.39
KB
-rwxr-xr-x
deallocvt
14.23
KB
-rwxr-xr-x
deb-janitor
4.51
KB
-rwxr-xr-x
deb-reversion
5.79
KB
-rwxr-xr-x
deb-systemd-helper
20.89
KB
-rwxr-xr-x
deb-systemd-invoke
6.01
KB
-rwxr-xr-x
deb-why-removed
6.47
KB
-rwxr-xr-x
debbisect
44.19
KB
-rwxr-xr-x
debc
16.59
KB
-rwxr-xr-x
debchange
65.04
KB
-rwxr-xr-x
debcheckout
45.11
KB
-rwxr-xr-x
debclean
5.96
KB
-rwxr-xr-x
debcommit
30.16
KB
-rwxr-xr-x
debconf
2.79
KB
-rwxr-xr-x
debconf-apt-progress
11.27
KB
-rwxr-xr-x
debconf-communicate
608
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
647
B
-rwxr-xr-x
debconf-set-selections
2.92
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
debdiff
40.86
KB
-rwxr-xr-x
debdiff-apply
12.29
KB
-rwxr-xr-x
debi
16.59
KB
-rwxr-xr-x
debian-distro-info
22.95
KB
-rwxr-xr-x
debootsnap
23.37
KB
-rwxr-xr-x
debpkg
18.15
KB
-rwxr-xr-x
debrebuild
23.72
KB
-rwxr-xr-x
debrelease
10.75
KB
-rwxr-xr-x
debrepro
6.08
KB
-rwxr-xr-x
debrsign
9.06
KB
-rwxr-xr-x
debsign
23.46
KB
-rwxr-xr-x
debsnap
12.98
KB
-rwxr-xr-x
debsums
24.81
KB
-rwxr-xr-x
debuild
41.63
KB
-rwxr-xr-x
decodemail
34.77
KB
-rwxr-xr-x
decryptdir
1.44
KB
-rwxr-xr-x
defmt-c
14.3
KB
-rwxr-xr-x
defmt-sh
14.3
KB
-rwxr-xr-x
dehtmldiff
1.32
KB
-rwxr-xr-x
delpart
14.38
KB
-rwxr-xr-x
delv
45.32
KB
-rwxr-xr-x
dep3changelog
5.47
KB
-rwxr-xr-x
derb
26.88
KB
-rwxr-xr-x
desktop2menu
12.57
KB
-rwxr-xr-x
detex
58.32
KB
-rwxr-xr-x
devnag
43.34
KB
-rwxr-xr-x
df
83.08
KB
-rwxr-xr-x
dget
23.94
KB
-rwxr-xr-x
dh_autotools-dev_restoreconfig
1.79
KB
-rwxr-xr-x
dh_autotools-dev_updateconfig
1.81
KB
-rwxr-xr-x
dh_bash-completion
4.31
KB
-rwxr-xr-x
dh_dkms
4.2
KB
-rwxr-xr-x
dh_installtex
17.96
KB
-rwxr-xr-x
dh_installxmlcatalogs
9.22
KB
-rwxr-xr-x
dh_numpy3
1.94
KB
-rwxr-xr-x
dh_perl_dbi
1.17
KB
-rwxr-xr-x
dh_perl_openssl
1.5
KB
-rwxr-xr-x
dh_sphinxdoc
17.29
KB
-rwxr-xr-x
dhwp
940
B
-rwxr-xr-x
dict
71.52
KB
-rwxr-xr-x
dict_lookup
4.35
KB
-rwxr-xr-x
dictl
1.93
KB
-rwxr-xr-x
diff
130.55
KB
-rwxr-xr-x
diff2patches
2.86
KB
-rwxr-xr-x
diff3
54.52
KB
-rwxr-xr-x
dig
150.83
KB
-rwxr-xr-x
dir
134.98
KB
-rwxr-xr-x
dircolors
38.52
KB
-rwxr-xr-x
dirmngr
433.02
KB
-rwxr-xr-x
dirmngr-client
54.92
KB
-rwxr-xr-x
dirname
30.38
KB
-rwxr-xr-x
disdvi
22.31
KB
-rwxr-xr-x
dislocate
7.75
KB
-rwxr-xr-x
display
14.15
KB
-rwxr-xr-x
display-im6
14.15
KB
-rwxr-xr-x
display-im6.q16
14.15
KB
-rwxr-xr-x
distro-info
22.89
KB
-rwxr-xr-x
django-admin
968
B
-rwxr-xr-x
djpeg
42.21
KB
-rwxr-xr-x
dmesg
70.61
KB
-rwxr-xr-x
dnsdomainname
22.23
KB
-rwxr-xr-x
dnssort
1.82
KB
-rwxr-xr-x
do-release-upgrade
10.42
KB
-rwxr-xr-x
domainname
22.23
KB
-rwxr-xr-x
dos2unix
54.34
KB
-rwxr-xr-x
dotlock
15.14
KB
-rwxr-sr-x
dotlock.mailutils
15.14
KB
-rwxr-sr-x
dotlockfile
22.15
KB
-rwxr-sr-x
dpkg
310.69
KB
-rwxr-xr-x
dpkg-architecture
13.51
KB
-rwxr-xr-x
dpkg-awk
949
B
-rwxr-xr-x
dpkg-buildflags
7.39
KB
-rwxr-xr-x
dpkg-buildpackage
31.67
KB
-rwxr-xr-x
dpkg-checkbuilddeps
7.45
KB
-rwxr-xr-x
dpkg-deb
134.49
KB
-rwxr-xr-x
dpkg-depcheck
18.49
KB
-rwxr-xr-x
dpkg-distaddfile
2.72
KB
-rwxr-xr-x
dpkg-divert
118.49
KB
-rwxr-xr-x
dpkg-genbuilddeps
1005
B
-rwxr-xr-x
dpkg-genbuildinfo
16.71
KB
-rwxr-xr-x
dpkg-genchanges
17.27
KB
-rwxr-xr-x
dpkg-gencontrol
14.24
KB
-rwxr-xr-x
dpkg-gensymbols
10.65
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.71
KB
-rwxr-xr-x
dpkg-mergechangelogs
8.69
KB
-rwxr-xr-x
dpkg-name
6.63
KB
-rwxr-xr-x
dpkg-parsechangelog
4.83
KB
-rwxr-xr-x
dpkg-query
138.52
KB
-rwxr-xr-x
dpkg-realpath
4.09
KB
-rwxr-xr-x
dpkg-scanpackages
8.5
KB
-rwxr-xr-x
dpkg-scansources
8.96
KB
-rwxr-xr-x
dpkg-shlibdeps
30.96
KB
-rwxr-xr-x
dpkg-source
22.56
KB
-rwxr-xr-x
dpkg-split
98.51
KB
-rwxr-xr-x
dpkg-statoverride
46.26
KB
-rwxr-xr-x
dpkg-trigger
42.41
KB
-rwxr-xr-x
dpkg-vendor
3.19
KB
-rwxr-xr-x
dropdb
9.21
KB
-rwxr-xr-x
droplang
9.21
KB
-rwxr-xr-x
dropuser
9.21
KB
-rwxr-xr-x
dscextract
4.16
KB
-rwxr-xr-x
dscverify
13.9
KB
-rwxr-xr-x
dselect
226.59
KB
-rwxr-xr-x
dt2dv
40.49
KB
-rwxr-xr-x
du
146.51
KB
-rwxr-xr-x
duck
16.02
KB
-rwxr-xr-x
dump_index
1.4
KB
-rwxr-xr-x
dumpkeys
158.71
KB
-rwxr-xr-x
duplicity
5.21
KB
-rwxr-xr-x
dv2dt
23.87
KB
-rwxr-xr-x
dvi2tty
58.69
KB
-rwxr-xr-x
dvibook
30.5
KB
-rwxr-xr-x
dviconcat
22.6
KB
-rwxr-xr-x
dvicopy
54.4
KB
-rwxr-xr-x
dvihp
4.38
KB
-rwxr-xr-x
dvilj
54.82
KB
-rwxr-xr-x
dvilj2p
54.82
KB
-rwxr-xr-x
dvilj4
62.83
KB
-rwxr-xr-x
dvilj4l
62.83
KB
-rwxr-xr-x
dvilj6
62.83
KB
-rwxr-xr-x
dvilualatex
6.64
MB
-rwxr-xr-x
dviluatex
6.64
MB
-rwxr-xr-x
dvipdf
1007
B
-rwxr-xr-x
dvipdfm
835.77
KB
-rwxr-xr-x
dvipdfmx
835.77
KB
-rwxr-xr-x
dvipdft
2.63
KB
-rwxr-xr-x
dvipos
50.79
KB
-rwxr-xr-x
dvips
219.32
KB
-rwxr-xr-x
dviselect
22.5
KB
-rwxr-xr-x
dvispc
47.52
KB
-rwxr-xr-x
dvitodvi
34.5
KB
-rwxr-xr-x
dvitomp
800
KB
-rwxr-xr-x
dvitype
46.42
KB
-rwxr-xr-x
dwp
1.82
MB
-rwxr-xr-x
eatmydata
2.74
KB
-rwxr-xr-x
ebb
835.77
KB
-rwxr-xr-x
ebrowse
46.27
KB
-rwxr-xr-x
ebrowse.emacs
46.27
KB
-rwxr-xr-x
ec2metadata
8.38
KB
-rwxr-xr-x
echo
34.3
KB
-rwxr-xr-x
ed
54.49
KB
-rwxr-xr-x
edit
18.06
KB
-rwxr-xr-x
edit-patch
8.14
KB
-rwxr-xr-x
editdiff
2.02
KB
-rwxr-xr-x
editor
729.83
KB
-rwxr-xr-x
editres
72.69
KB
-rwxr-xr-x
egrep
28
B
-rwxr-xr-x
eject
42.23
KB
-rwxr-xr-x
elfedit
34.72
KB
-rwxr-xr-x
elvis-tiny
101.49
KB
-rwxr-xr-x
emacs
6.01
MB
-rwxr-xr-x
emacs-gtk
6.01
MB
-rwxr-xr-x
emacsclient
30.23
KB
-rwxr-xr-x
emacsclient.emacs
30.23
KB
-rwxr-xr-x
enc2xs
40.84
KB
-rwxr-xr-x
encguess
3.01
KB
-rwxr-xr-x
encode_keychange
22.3
KB
-rwxr-xr-x
env
42.95
KB
-rwxr-xr-x
envdir
21.98
KB
-rwxr-xr-x
envsubst
34.38
KB
-rwxr-xr-x
envuidgid
21.98
KB
-rwxr-xr-x
eps2eps
639
B
-rwxr-xr-x
eptex
544.22
KB
-rwxr-xr-x
eqn
188.45
KB
-rwxr-xr-x
eqn2graph
3.16
KB
-rwxr-xr-x
erb
507
B
-rwxr-xr-x
erb3.0
507
B
-rwxr-xr-x
erubis
158
B
-rwxr-xr-x
espdiff
1.53
KB
-rwxr-xr-x
etags
151.01
KB
-rwxr-xr-x
etags.emacs
151.01
KB
-rwxr-xr-x
etex
1.72
MB
-rwxr-xr-x
euptex
554.86
KB
-rwxr-xr-x
ex
3.61
MB
-rwxr-xr-x
exifautotran
1.11
KB
-rwxr-xr-x
exiftool
302.54
KB
-rwxr-xr-x
expand
34.53
KB
-rwxr-xr-x
expect
14.15
KB
-rwxr-xr-x
expect_autoexpect
7.53
KB
-rwxr-xr-x
expect_autopasswd
378
B
-rwxr-xr-x
expect_cryptdir
1.44
KB
-rwxr-xr-x
expect_decryptdir
1.44
KB
-rwxr-xr-x
expect_dislocate
7.75
KB
-rwxr-xr-x
expect_ftp-rfc
686
B
-rwxr-xr-x
expect_kibitz
10.63
KB
-rwxr-xr-x
expect_lpunlock
2.56
KB
-rwxr-xr-x
expect_mkpasswd
5.26
KB
-rwxr-xr-x
expect_multixterm
29.85
KB
-rwxr-xr-x
expect_passmass
4.45
KB
-rwxr-xr-x
expect_rftp
8.68
KB
-rwxr-xr-x
expect_rlogin-cwd
504
B
-rwxr-xr-x
expect_timed-read
306
B
-rwxr-xr-x
expect_timed-run
280
B
-rwxr-xr-x
expect_tknewsbiff
11.24
KB
-rwxr-xr-x
expect_tkpasswd
16.3
KB
-rwxr-xr-x
expect_unbuffer
643
B
-rwxr-xr-x
expect_weather
2.03
KB
-rwxr-xr-x
expect_xkibitz
4.75
KB
-rwxr-xr-x
expect_xpstat
6.59
KB
-rwxr-xr-x
expiry
22.59
KB
-rwxr-sr-x
expr
102.41
KB
-rwxr-xr-x
extcheck
14.32
KB
-rwxr-xr-x
extractbb
835.77
KB
-rwxr-xr-x
eyuvtoppm
18.02
KB
-rwxr-xr-x
f2py3
957
B
-rwxr-xr-x
f2py3.10
960
B
-rwxr-xr-x
factor
70.51
KB
-rwxr-xr-x
fail2ban-client
1.39
KB
-rwxr-xr-x
fail2ban-python
5.66
MB
-rwxr-xr-x
fail2ban-regex
1.25
KB
-rwxr-xr-x
fail2ban-server
1.38
KB
-rwxr-xr-x
fail2ban-testcases
2.23
KB
-rwxr-xr-x
faillog
22.59
KB
-rwxr-xr-x
faked-sysv
30.39
KB
-rwxr-xr-x
faked-tcp
30.38
KB
-rwxr-xr-x
fakeroot
3.9
KB
-rwxr-xr-x
fakeroot-sysv
3.9
KB
-rwxr-xr-x
fakeroot-tcp
3.9
KB
-rwxr-xr-x
fallocate
22.38
KB
-rwxr-xr-x
false
26.3
KB
-rwxr-xr-x
fc-cache
22.23
KB
-rwxr-xr-x
fc-cat
18.23
KB
-rwxr-xr-x
fc-conflist
14.23
KB
-rwxr-xr-x
fc-list
14.23
KB
-rwxr-xr-x
fc-match
14.23
KB
-rwxr-xr-x
fc-pattern
14.23
KB
-rwxr-xr-x
fc-query
14.23
KB
-rwxr-xr-x
fc-scan
14.23
KB
-rwxr-xr-x
fc-validate
14.23
KB
-rwxr-xr-x
fcgistarter
14.3
KB
-rwxr-xr-x
ffmpeg
294.48
KB
-rwxr-xr-x
ffplay
146.47
KB
-rwxr-xr-x
ffprobe
174.64
KB
-rwxr-xr-x
fgconsole
14.23
KB
-rwxr-xr-x
fghack
21.98
KB
-rwxr-xr-x
fgrep
28
B
-rwxr-xr-x
fiascotopnm
118.6
KB
-rwxr-xr-x
figlet
26.68
KB
-rwxr-xr-x
figlet-toilet
26.68
KB
-rwxr-xr-x
filan
46.48
KB
-rwxr-xr-x
file
26.56
KB
-rwxr-xr-x
filterdiff
55.48
KB
-rwxr-xr-x
finalrd
2.06
KB
-rwxr-xr-x
fincore
22.42
KB
-rwxr-xr-x
find
275.48
KB
-rwxr-xr-x
findaffix
11.74
KB
-rwxr-xr-x
findmnt
63.61
KB
-rwxr-xr-x
fitstopnm
18.02
KB
-rwxr-xr-x
fixcvsdiff
1.83
KB
-rwxr-xr-x
fixproc
15.16
KB
-rwxr-xr-x
flex
405.18
KB
-rwxr-xr-x
flex++
405.18
KB
-rwxr-xr-x
flickr_dump_stored_config
2.01
KB
-rwxr-xr-x
flickr_make_stored_config
10.35
KB
-rwxr-xr-x
flickr_make_test_values
4.48
KB
-rwxr-xr-x
flipdiff
50.89
KB
-rwxr-xr-x
flock
22.48
KB
-rwxr-xr-x
fmt
38.51
KB
-rwxr-xr-x
fmtutil
53.83
KB
-rwxr-xr-x
fmtutil-sys
929
B
-rwxr-xr-x
fmtutil-user
926
B
-rwxr-xr-x
fold
34.51
KB
-rwxr-xr-x
formail
46.3
KB
-rwxr-xr-x
fping
50.87
KB
-rwxr-xr-x
fping6
50.87
KB
-rwxr-xr-x
free
26.23
KB
-rwxr-xr-x
frm
27.29
KB
-rwxr-xr-x
frm.mailutils
27.29
KB
-rwxr-xr-x
from
26.82
KB
-rwxr-xr-x
from.mailutils
26.82
KB
-rwxr-xr-x
fromdos
18.17
KB
-rwxr-xr-x
fsfs-access-map
18.3
KB
-rwxr-xr-x
fsfs-stats
65
B
-rwxr-xr-x
fstopgm
14.02
KB
-rwxr-xr-x
ftp
178.9
KB
-rwxr-xr-x
ftp-rfc
686
B
-rwxr-xr-x
ftpcount
23.66
KB
-rwxr-xr-x
ftpdctl
98.36
KB
-rwxr-xr-x
ftptop
27.33
KB
-rwxr-xr-x
ftpwho
43.8
KB
-rwxr-xr-x
funzip
22.3
KB
-rwxr-xr-x
fuser
39.31
KB
-rwxr-xr-x
fusermount
34.38
KB
-rwsr-xr-x
fusermount3
34.38
KB
-rwsr-xr-x
futurize
960
B
-rwxr-xr-x
g++
910.82
KB
-rwxr-xr-x
g++-11
910.82
KB
-rwxr-xr-x
g3topbm
17.13
KB
-rwxr-xr-x
gapplication
22.38
KB
-rwxr-xr-x
gawk
688.46
KB
-rwxr-xr-x
gcc
906.82
KB
-rwxr-xr-x
gcc-11
906.82
KB
-rwxr-xr-x
gcc-12
1.32
MB
-rwxr-xr-x
gcc-ar
26.54
KB
-rwxr-xr-x
gcc-ar-11
26.54
KB
-rwxr-xr-x
gcc-ar-12
34.63
KB
-rwxr-xr-x
gcc-nm
26.54
KB
-rwxr-xr-x
gcc-nm-11
26.54
KB
-rwxr-xr-x
gcc-nm-12
34.63
KB
-rwxr-xr-x
gcc-ranlib
26.54
KB
-rwxr-xr-x
gcc-ranlib-11
26.54
KB
-rwxr-xr-x
gcc-ranlib-12
34.63
KB
-rwxr-xr-x
gcore
3.4
KB
-rwxr-xr-x
gcov
400.01
KB
-rwxr-xr-x
gcov-11
400.01
KB
-rwxr-xr-x
gcov-12
736.26
KB
-rwxr-xr-x
gcov-dump
251.84
KB
-rwxr-xr-x
gcov-dump-11
251.84
KB
-rwxr-xr-x
gcov-dump-12
576.13
KB
-rwxr-xr-x
gcov-tool
275.93
KB
-rwxr-xr-x
gcov-tool-11
275.93
KB
-rwxr-xr-x
gcov-tool-12
600.22
KB
-rwxr-xr-x
gcov2perl
5.67
KB
-rwxr-xr-x
gd2copypal
14.15
KB
-rwxr-xr-x
gd2togif
14.15
KB
-rwxr-xr-x
gd2topng
14.15
KB
-rwxr-xr-x
gdb
9.8
MB
-rwxr-xr-x
gdb-add-index
4.52
KB
-rwxr-xr-x
gdbtui
126
B
-rwxr-xr-x
gdbus
50.38
KB
-rwxr-xr-x
gdcmpgif
14.15
KB
-rwxr-xr-x
gdiffmk
7.51
KB
-rwxr-xr-x
gdparttopng
14.15
KB
-rwxr-xr-x
gdtopng
14.15
KB
-rwxr-xr-x
gem
254
B
-rwxr-xr-x
gem3.0
545
B
-rwxr-xr-x
gemtopbm
14.02
KB
-rwxr-xr-x
gemtopnm
14.02
KB
-rwxr-xr-x
genbrk
14.78
KB
-rwxr-xr-x
gencat
26.37
KB
-rwxr-xr-x
gencfu
14.73
KB
-rwxr-xr-x
gencnval
26.61
KB
-rwxr-xr-x
gendict
26.78
KB
-rwxr-xr-x
genrb
147.91
KB
-rwxr-xr-x
geqn
188.45
KB
-rwxr-xr-x
get_root_domain
2.12
KB
-rwxr-xr-x
getbuildlog
4.71
KB
-rwxr-xr-x
getconf
34.29
KB
-rwxr-xr-x
getent
38.65
KB
-rwxr-xr-x
getfacl
30.81
KB
-rwxr-xr-x
getfattr
22.76
KB
-rwxr-xr-x
getkeycodes
14.23
KB
-rwxr-xr-x
getopt
22.38
KB
-rwxr-xr-x
gettext
34.38
KB
-rwxr-xr-x
gettext.sh
5.07
KB
-rwxr-xr-x
gettextize
41.28
KB
-rwxr-xr-x
gftodvi
46.39
KB
-rwxr-xr-x
gftopk
26.38
KB
-rwxr-xr-x
gftype
26.39
KB
-rwxr-xr-x
ghostscript
14.15
KB
-rwxr-xr-x
giftogd2
14.15
KB
-rwxr-xr-x
giftopnm
22.02
KB
-rwxr-xr-x
ginstall-info
103.23
KB
-rwxr-xr-x
gio
90.4
KB
-rwxr-xr-x
gio-querymodules
14.3
KB
-rwxr-xr-x
git
3.54
MB
-rwxr-xr-x
git-deborig
8.82
KB
-rwxr-xr-x
git-receive-pack
3.54
MB
-rwxr-xr-x
git-shell
552.58
KB
-rwxr-xr-x
git-upload-archive
3.54
MB
-rwxr-xr-x
git-upload-pack
3.54
MB
-rwxr-xr-x
gitdiff
1.72
KB
-rwxr-xr-x
gitdiffview
814
B
-rwxr-xr-x
glib-compile-schemas
50.3
KB
-rwxr-xr-x
glilypond
18.19
KB
-rwxr-xr-x
gmake
249.7
KB
-rwxr-xr-x
gnuplot
1.93
MB
-rwxr-xr-x
gnuplot-qt
1.93
MB
-rwxr-xr-x
gold
3.04
MB
-rwxr-xr-x
google-authenticator
34.79
KB
-rwxr-xr-x
googlism
767
B
-rwxr-xr-x
gouldtoppm
14.02
KB
-rwxr-xr-x
gpasswd
70.38
KB
-rwsr-xr-x
gperl
6.87
KB
-rwxr-xr-x
gpg
1
MB
-rwxr-xr-x
gpg-agent
312.96
KB
-rwxr-xr-x
gpg-connect-agent
82.99
KB
-rwxr-xr-x
gpg-wks-server
115.05
KB
-rwxr-xr-x
gpg-zip
3.43
KB
-rwxr-xr-x
gpg1
889.02
KB
-rwxr-xr-x
gpgcompose
496.48
KB
-rwxr-xr-x
gpgconf
126.73
KB
-rwxr-xr-x
gpgmailtunl
6.29
KB
-rwxr-xr-x
gpgparsemail
34.38
KB
-rwxr-xr-x
gpgsm
418.9
KB
-rwxr-xr-x
gpgsplit
26.55
KB
-rwxr-xr-x
gpgtar
63.39
KB
-rwxr-xr-x
gpgv
271.04
KB
-rwxr-xr-x
gpic
200.04
KB
-rwxr-xr-x
gpinyin
5.28
KB
-rwxr-xr-x
gprof
111.79
KB
-rwxr-xr-x
grap2graph
3.08
KB
-rwxr-xr-x
gregorio
674.84
KB
-rwxr-xr-x
grep
178.45
KB
-rwxr-xr-x
grep-aptavail
48.08
KB
-rwxr-xr-x
grep-available
48.08
KB
-rwxr-xr-x
grep-dctrl
48.08
KB
-rwxr-xr-x
grep-debtags
48.08
KB
-rwxr-xr-x
grep-excuses
12.45
KB
-rwxr-xr-x
grep-status
48.08
KB
-rwxr-xr-x
grepdiff
55.48
KB
-rwxr-xr-x
gresource
22.3
KB
-rwxr-xr-x
grn
86.84
KB
-rwxr-xr-x
grodvi
118.49
KB
-rwxr-xr-x
groff
94.5
KB
-rwxr-xr-x
groffer
8.04
KB
-rwxr-xr-x
grog
2.71
KB
-rwxr-xr-x
grolbp
122.8
KB
-rwxr-xr-x
grolj4
114.5
KB
-rwxr-xr-x
gropdf
70.69
KB
-rwxr-xr-x
grops
162.55
KB
-rwxr-xr-x
grotty
118.52
KB
-rwxr-xr-x
groups
34.51
KB
-rwxr-xr-x
growpart
26.22
KB
-rwxr-xr-x
grub-editenv
376.95
KB
-rwxr-xr-x
grub-file
816.45
KB
-rwxr-xr-x
grub-fstest
937.92
KB
-rwxr-xr-x
grub-glue-efi
247.86
KB
-rwxr-xr-x
grub-kbdcomp
1.64
KB
-rwxr-xr-x
grub-menulst2cfg
228.13
KB
-rwxr-xr-x
grub-mkfont
272.42
KB
-rwxr-xr-x
grub-mkimage
361.05
KB
-rwxr-xr-x
grub-mklayout
252.17
KB
-rwxr-xr-x
grub-mknetdir
417.66
KB
-rwxr-xr-x
grub-mkpasswd-pbkdf2
256.2
KB
-rwxr-xr-x
grub-mkrelpath
247.58
KB
-rwxr-xr-x
grub-mkrescue
998.47
KB
-rwxr-xr-x
grub-mkstandalone
493.95
KB
-rwxr-xr-x
grub-mount
760.84
KB
-rwxr-xr-x
grub-ntldr-img
38.24
KB
-rwxr-xr-x
grub-render-label
828.83
KB
-rwxr-xr-x
grub-script-check
275.7
KB
-rwxr-xr-x
grub-syslinux2cfg
781.34
KB
-rwxr-xr-x
gs
14.15
KB
-rwxr-xr-x
gsbj
350
B
-rwxr-xr-x
gsdj
352
B
-rwxr-xr-x
gsdj500
352
B
-rwxr-xr-x
gsettings
30.3
KB
-rwxr-xr-x
gsftopk
34.49
KB
-rwxr-xr-x
gslj
353
B
-rwxr-xr-x
gslp
350
B
-rwxr-xr-x
gsnd
277
B
-rwxr-xr-x
gtbl
126.48
KB
-rwxr-xr-x
gtf
18.31
KB
-rwxr-xr-x
gtk-update-icon-cache
38.57
KB
-rwxr-xr-x
gunzip
2.29
KB
-rwxr-xr-x
gxditview
133.69
KB
-rwxr-xr-x
gzexe
6.3
KB
-rwxr-xr-x
gzip
91.23
KB
-rwxr-xr-x
h2ph
28.54
KB
-rwxr-xr-x
h2xs
59.51
KB
-rwxr-xr-x
hardening-check
19.09
KB
-rwxr-xr-x
hardlink
34.43
KB
-rwxr-xr-x
hd
50.39
KB
-rwxr-xr-x
head
42.51
KB
-rwxr-xr-x
helpztags
2.46
KB
-rwxr-xr-x
hexdump
50.39
KB
-rwxr-xr-x
hexedit
46.16
KB
-rwxr-xr-x
hg
1.78
KB
-rwxr-xr-x
hg-ssh
3.49
KB
-rwxr-xr-x
highlight
858.41
KB
-rwxr-xr-x
hipstopgm
14.02
KB
-rwxr-xr-x
host
118.82
KB
-rwxr-xr-x
hostid
30.51
KB
-rwxr-xr-x
hostname
22.23
KB
-rwxr-xr-x
hostnamectl
30.38
KB
-rwxr-xr-x
hpftodit
250.45
KB
-rwxr-xr-x
hsdb
14.34
KB
-rwxr-xr-x
htcacheclean
38.31
KB
-rwxr-xr-x
htdbm
26.3
KB
-rwxr-xr-x
htdigest
14.3
KB
-rwxr-xr-x
html2text
218.32
KB
-rwxr-xr-x
htmlclean
3.21
KB
-rwxr-xr-x
htop
277.19
KB
-rwxr-xr-x
htpasswd
26.3
KB
-rwxr-xr-x
hwe-support-status
10.58
KB
-rwxr-xr-x
i386
26.65
KB
-rwxr-xr-x
icombine
38.7
KB
-rwxr-xr-x
icontopbm
14.02
KB
-rwxr-xr-x
iconv
66.41
KB
-rwxr-xr-x
icuexportdata
30.98
KB
-rwxr-xr-x
icuinfo
14.62
KB
-rwxr-xr-x
id
38.51
KB
-rwxr-xr-x
ident
26.45
KB
-rwxr-xr-x
identify
14.15
KB
-rwxr-xr-x
identify-im6
14.15
KB
-rwxr-xr-x
identify-im6.q16
14.15
KB
-rwxr-xr-x
idlj
14.32
KB
-rwxr-xr-x
ifnames
4.08
KB
-rwxr-xr-x
ijoin
18.34
KB
-rwxr-xr-x
ilbmtoppm
66.1
KB
-rwxr-xr-x
imagetops
1.21
KB
-rwxr-xr-x
imgsize
4.57
KB
-rwxr-xr-x
imgtoppm
14.02
KB
-rwxr-xr-x
import
14.15
KB
-rwxr-xr-x
import-im6
14.15
KB
-rwxr-xr-x
import-im6.q16
14.15
KB
-rwxr-xr-x
indent
99.91
KB
-rwxr-xr-x
indxbib
46.51
KB
-rwxr-xr-x
info
301.74
KB
-rwxr-xr-x
infobrowser
301.74
KB
-rwxr-xr-x
infocmp
62.38
KB
-rwxr-xr-x
infotocap
86.41
KB
-rwxr-xr-x
inimf
391.94
KB
-rwxr-xr-x
initex
399.97
KB
-rwxr-xr-x
install
142.52
KB
-rwxr-xr-x
install-info
103.23
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
interdiff
50.89
KB
-rwxr-xr-x
ionice
18.38
KB
-rwxr-xr-x
iostat
54.44
KB
-rwxr-xr-x
ip
702.05
KB
-rwxr-xr-x
ipcalc
31.91
KB
-rwxr-xr-x
ipcmk
22.45
KB
-rwxr-xr-x
ipcrm
18.38
KB
-rwxr-xr-x
ipcs
38.38
KB
-rwxr-xr-x
ipmi_sim
153.26
KB
-rwxr-xr-x
ipmi_ui
14.23
KB
-rwxr-xr-x
ipmicmd
26.16
KB
-rwxr-xr-x
ipmilan
22.45
KB
-rwxr-xr-x
ipmish
38.8
KB
-rwxr-xr-x
ipmitool
914.03
KB
-rwxr-xr-x
iptables-xml
96.95
KB
-rwxr-xr-x
irb
507
B
-rwxr-xr-x
irb3.0
507
B
-rwxr-xr-x
irc
532.29
KB
-rwxr-xr-x
ircII
532.29
KB
-rwxr-xr-x
irssi
1.21
MB
-rwxr-xr-x
ischroot
14.2
KB
-rwxr-xr-x
iscsiadm
398.46
KB
-rwxr-xr-x
ispell
102.77
KB
-rwxr-xr-x
ispell-wrapper
7.05
KB
-rwxr-xr-x
jar
14.32
KB
-rwxr-xr-x
jarsigner
14.32
KB
-rwxr-xr-x
java
14.29
KB
-rwxr-xr-x
javac
14.32
KB
-rwxr-xr-x
javadoc
14.32
KB
-rwxr-xr-x
javah
14.32
KB
-rwxr-xr-x
javap
14.32
KB
-rwxr-xr-x
jcmd
14.32
KB
-rwxr-xr-x
jconsole
14.34
KB
-rwxr-xr-x
jdb
14.34
KB
-rwxr-xr-x
jdeps
14.32
KB
-rwxr-xr-x
jed
373.49
KB
-rwxr-xr-x
jed-script
373.49
KB
-rwxr-xr-x
jfr
14.32
KB
-rwxr-xr-x
jhat
14.32
KB
-rwxr-xr-x
jhead
78.9
KB
-rwxr-xr-x
jinfo
14.37
KB
-rwxr-xr-x
jjs
14.32
KB
-rwxr-xr-x
jmacs
729.83
KB
-rwxr-xr-x
jmap
14.37
KB
-rwxr-xr-x
joe
729.83
KB
-rwxr-xr-x
join
46.55
KB
-rwxr-xr-x
join-dctrl
34.83
KB
-rwxr-xr-x
journalctl
78.39
KB
-rwxr-xr-x
jpegexiforient
14.14
KB
-rwxr-xr-x
jpegtopnm
30.09
KB
-rwxr-xr-x
jpegtran
46.14
KB
-rwxr-xr-x
jpico
729.83
KB
-rwxr-xr-x
jps
14.32
KB
-rwxr-xr-x
jrunscript
14.32
KB
-rwxr-xr-x
js
26.08
KB
-rwxr-xr-x
jsadebugd
14.34
KB
-rwxr-xr-x
json-patch-jsondiff
1004
B
-rwxr-xr-x
json5
2.83
KB
-rwxr-xr-x
json_pp
4.88
KB
-rwxr-xr-x
jsondiff
1004
B
-rwxr-xr-x
jsonpatch
3.77
KB
-rwxr-xr-x
jsonpointer
1.79
KB
-rwxr-xr-x
jsonschema
397
B
-rwxr-xr-x
jstack
14.37
KB
-rwxr-xr-x
jstar
729.83
KB
-rwxr-xr-x
jstat
14.32
KB
-rwxr-xr-x
jstatd
14.32
KB
-rwxr-xr-x
kbd_mode
14.52
KB
-rwxr-xr-x
kbdinfo
18.23
KB
-rwxr-xr-x
kbxutil
62.83
KB
-rwxr-xr-x
keep-one-running
3.51
KB
-rwxr-xr-x
kernel-install
4.79
KB
-rwxr-xr-x
keyctl
46.38
KB
-rwxr-xr-x
keyring
961
B
-rwxr-xr-x
keytool
14.32
KB
-rwxr-xr-x
kibitz
10.63
KB
-rwxr-xr-x
kill
30.23
KB
-rwxr-xr-x
killall
31.34
KB
-rwxr-xr-x
kmod
166.36
KB
-rwxr-xr-x
kmodsign
18.45
KB
-rwxr-xr-x
kpseaccess
14.3
KB
-rwxr-xr-x
kpsereadlink
14.3
KB
-rwxr-xr-x
kpsestat
14.3
KB
-rwxr-xr-x
kpsewhich
27.3
KB
-rwxr-xr-x
krb5-config
6.78
KB
-rwxr-xr-x
krb5-config.mit
6.78
KB
-rwxr-xr-x
ksh
1.36
MB
-rwxr-xr-x
ksh93
1.36
MB
-rwxr-xr-x
l4p-tmpl
1.8
KB
-rwxr-xr-x
last
34.38
KB
-rwxr-xr-x
lastb
34.38
KB
-rwxr-xr-x
lastcomm
30.75
KB
-rwxr-xr-x
lastlog
27.63
KB
-rwxr-xr-x
latex
1.72
MB
-rwxr-xr-x
lcf
7.6
KB
-rwxr-xr-x
ld
1.66
MB
-rwxr-xr-x
ld.bfd
1.66
MB
-rwxr-xr-x
ld.gold
3.04
MB
-rwxr-xr-x
ldd
5.32
KB
-rwxr-xr-x
leaftoppm
14.02
KB
-rwxr-xr-x
less
194.38
KB
-rwxr-xr-x
lessecho
14.31
KB
-rwxr-xr-x
lessfile
8.83
KB
-rwxr-xr-x
lesskey
23.7
KB
-rwxr-xr-x
lesspipe
8.83
KB
-rwxr-xr-x
lex
405.18
KB
-rwxr-xr-x
lexgrog
99.75
KB
-rwxr-xr-x
lft
2.43
KB
-rwxr-xr-x
lft.db
2.43
KB
-rwxr-xr-x
lftp
1.64
MB
-rwxr-xr-x
lftpget
1.27
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
libpng-config
2.41
KB
-rwxr-xr-x
libpng16-config
2.41
KB
-rwxr-xr-x
libtoolize
128.26
KB
-rwxr-xr-x
link
30.51
KB
-rwxr-xr-x
links
2.22
MB
-rwxr-xr-x
linux-check-removal
3.99
KB
-rwxr-xr-x
linux-update-symlinks
6.17
KB
-rwxr-xr-x
linux-version
2.63
KB
-rwxr-xr-x
linux32
26.65
KB
-rwxr-xr-x
linux64
26.65
KB
-rwxr-xr-x
lispmtopgm
14.02
KB
-rwxr-xr-x
list-unreleased
1.92
KB
-rwxr-xr-x
listen
539
B
-rwxr-xr-x
listres
14.73
KB
-rwxr-xr-x
lkbib
54.49
KB
-rwxr-xr-x
ln
58.51
KB
-rwxr-xr-x
lnstat
22.66
KB
-rwxr-xr-x
loadkeys
198.76
KB
-rwxr-xr-x
loadunimap
30.32
KB
-rwxr-xr-x
locale
57.56
KB
-rwxr-xr-x
locale-check
14.15
KB
-rwxr-xr-x
localectl
26.37
KB
-rwxr-xr-x
localedef
326.96
KB
-rwxr-xr-x
lockfile
18.02
KB
-rwxr-sr-x
lockfile-check
14.16
KB
-rwxr-xr-x
lockfile-create
14.16
KB
-rwxr-xr-x
lockfile-remove
14.16
KB
-rwxr-xr-x
lockfile-touch
14.16
KB
-rwxr-xr-x
lockmail
22.15
KB
-rwxr-sr-x
lockmail.maildrop
22.15
KB
-rwxr-sr-x
logger
34.97
KB
-rwxr-xr-x
login
51.73
KB
-rwxr-xr-x
loginctl
58.48
KB
-rwxr-xr-x
logname
30.51
KB
-rwxr-xr-x
logresolve
14.31
KB
-rwxr-xr-x
look
18.38
KB
-rwxr-xr-x
lookbib
50.49
KB
-rwxr-xr-x
lowntfs-3g
114.98
KB
-rwxr-xr-x
lpunlock
2.56
KB
-rwxr-xr-x
ls
134.98
KB
-rwxr-xr-x
lsattr
14.31
KB
-rwxr-xr-x
lsb_release
3.55
KB
-rwxr-xr-x
lsblk
122.38
KB
-rwxr-xr-x
lscgroup
14.41
KB
-rwxr-xr-x
lscpu
98.38
KB
-rwxr-xr-x
lsdev
1.56
KB
-rwxr-xr-x
lsdiff
55.48
KB
-rwxr-xr-x
lshw
901.2
KB
-rwxr-xr-x
lsinitramfs
706
B
-rwxr-xr-x
lsipc
50.38
KB
-rwxr-xr-x
lslocks
30.7
KB
-rwxr-xr-x
lslogins
50.38
KB
-rwxr-xr-x
lsmem
34.38
KB
-rwxr-xr-x
lsmod
166.36
KB
-rwxr-xr-x
lsns
38.38
KB
-rwxr-xr-x
lsof
163.62
KB
-rwxr-xr-x
lspci
92.08
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
lssubsys
14.51
KB
-rwxr-xr-x
lsusb
246.52
KB
-rwxr-xr-x
ltnu
2.47
KB
-rwxr-xr-x
lto-dump-11
23.73
MB
-rwxr-xr-x
lto-dump-12
31.05
MB
-rwxr-xr-x
ltrace
269.2
KB
-rwxr-xr-x
luahbtex
6.68
MB
-rwxr-xr-x
luajithbtex
6.57
MB
-rwxr-xr-x
luajittex
6.54
MB
-rwxr-xr-x
lualatex
6.68
MB
-rwxr-xr-x
luatex
6.64
MB
-rwxr-xr-x
luit
48.44
KB
-rwxr-xr-x
lwp-download
10.05
KB
-rwxr-xr-x
lwp-dump
2.65
KB
-rwxr-xr-x
lwp-mirror
2.36
KB
-rwxr-xr-x
lwp-request
15.82
KB
-rwxr-xr-x
lynx
1.89
MB
-rwxr-xr-x
lzcat
82.52
KB
-rwxr-xr-x
lzcmp
6.86
KB
-rwxr-xr-x
lzdiff
6.86
KB
-rwxr-xr-x
lzegrep
5.87
KB
-rwxr-xr-x
lzfgrep
5.87
KB
-rwxr-xr-x
lzgrep
5.87
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
82.52
KB
-rwxr-xr-x
lzmainfo
14.23
KB
-rwxr-xr-x
lzmore
2.11
KB
-rwxr-xr-x
m17n-db
3.65
KB
-rwxr-xr-x
m4
154.37
KB
-rwxr-xr-x
mac2unix
54.34
KB
-rwxr-xr-x
macptopbm
14.02
KB
-rwxr-xr-x
mag
14.31
KB
-rwxr-xr-x
mail
110.4
KB
-rwxr-xr-x
mail-lock
14.16
KB
-rwxr-sr-x
mail-touchlock
14.16
KB
-rwxr-sr-x
mail-unlock
14.16
KB
-rwxr-sr-x
mail.mailutils
229.38
KB
-rwxr-xr-x
mailbot
106.27
KB
-rwxr-xr-x
maildirmake
42.23
KB
-rwxr-xr-x
maildirmake.maildrop
42.23
KB
-rwxr-xr-x
maildrop
210.44
KB
-rwxr-sr-x
mailq
30.45
KB
-rwxr-xr-x
mailstat
5.72
KB
-rwxr-xr-x
mailx
110.4
KB
-rwxr-xr-x
make
249.7
KB
-rwxr-xr-x
make-first-existing-target
4.79
KB
-rwxr-xr-x
make_method
21.64
KB
-rwxr-xr-x
makeconv
50.89
KB
-rwxr-xr-x
makedat
2.13
KB
-rwxr-xr-x
makedat.maildrop
2.13
KB
-rwxr-xr-x
makedatprog
14.15
KB
-rwxr-xr-x
makeindex
84.7
KB
-rwxr-xr-x
makejvf
46.31
KB
-rwxr-xr-x
makemime
34.15
KB
-rwxr-xr-x
man
117.68
KB
-rwxr-xr-x
man-recode
35.68
KB
-rwxr-xr-x
mandb
139.94
KB
-rwxr-xr-x
manifest
1.9
KB
-rwxr-xr-x
manpage-alert
4.61
KB
-rwxr-xr-x
manpath
30.78
KB
-rwxr-xr-x
mapscrn
30.32
KB
-rwxr-xr-x
marcdump
5.31
KB
-rwxr-xr-x
mass-bug
17.06
KB
-rwxr-xr-x
mawk
154.79
KB
-rwxr-xr-x
mc
1.05
MB
-rwxr-xr-x
mcdiff
1.05
MB
-rwxr-xr-x
mcedit
1.05
MB
-rwxr-xr-x
mcookie
26.45
KB
-rwxr-xr-x
mcview
1.05
MB
-rwxr-xr-x
md5sum
42.41
KB
-rwxr-xr-x
md5sum.textutils
42.41
KB
-rwxr-xr-x
mdatopbm
14.02
KB
-rwxr-xr-x
mdig
50.4
KB
-rwxr-xr-x
mech-dump
4.75
KB
-rwxr-xr-x
mediainfo
46.24
KB
-rwxr-xr-x
mendex
113.22
KB
-rwxr-xr-x
merge
30.45
KB
-rwxr-xr-x
mergechanges
11.16
KB
-rwxr-xr-x
mesg
14.38
KB
-rwxr-xr-x
messages
14.67
KB
-rwxr-xr-x
messages.mailutils
14.67
KB
-rwxr-xr-x
mf
391.94
KB
-rwxr-xr-x
mf-nowin
383.58
KB
-rwxr-xr-x
mflua
1.37
MB
-rwxr-xr-x
mflua-nowin
1.37
MB
-rwxr-xr-x
mfluajit
1.37
MB
-rwxr-xr-x
mfluajit-nowin
1.37
MB
-rwxr-xr-x
mfplain
800
KB
-rwxr-xr-x
mft
46.41
KB
-rwxr-xr-x
mgrtopbm
14.02
KB
-rwxr-xr-x
migrate-pubring-from-classic-g...
2.99
KB
-rwxr-xr-x
mimeview
19.35
KB
-rwxr-xr-x
mk-build-deps
19.31
KB
-rwxr-xr-x
mk-origtargz
6.92
KB
-rwxr-xr-x
mk_modmap
15.78
KB
-rwxr-xr-x
mkdir
66.51
KB
-rwxr-xr-x
mkfifo
38.51
KB
-rwxr-xr-x
mkindex
1.03
KB
-rwxr-xr-x
mknod
42.51
KB
-rwxr-xr-x
mkocp
171
B
-rwxr-xr-x
mkofm
85
B
-rwxr-xr-x
mkpasswd
26.38
KB
-rwxr-xr-x
mktemp
38.51
KB
-rwxr-xr-x
mktexfmt
53.83
KB
-rwxr-xr-x
mktexlsr
8.03
KB
-rwxr-xr-x
mktexmf
3.91
KB
-rwxr-xr-x
mktexpk
9.66
KB
-rwxr-xr-x
mktextfm
5.77
KB
-rwxr-xr-x
mlock
14.15
KB
-rwxr-sr-x
mlogc
42.2
KB
-rwxr-xr-x
mmroff
3.75
KB
-rwxr-xr-x
mogrify
14.15
KB
-rwxr-xr-x
mogrify-im6
14.15
KB
-rwxr-xr-x
mogrify-im6.q16
14.15
KB
-rwxr-xr-x
mokutil
59.48
KB
-rwxr-xr-x
montage
14.15
KB
-rwxr-xr-x
montage-im6
14.15
KB
-rwxr-xr-x
montage-im6.q16
14.15
KB
-rwxr-xr-x
more
42.38
KB
-rwxr-xr-x
mount
46.38
KB
-rwsr-xr-x
mountpoint
18.38
KB
-rwxr-xr-x
movemail
40.26
KB
-rwxr-xr-x
movemail.mailutils
40.26
KB
-rwxr-xr-x
mp3-decoder
155.63
KB
-rwxr-xr-x
mpack
26.47
KB
-rwxr-xr-x
mpg123
155.63
KB
-rwxr-xr-x
mpg123-alsa
50
B
-rwxr-xr-x
mpg123-id3dump
22.63
KB
-rwxr-xr-x
mpg123-jack
50
B
-rwxr-xr-x
mpg123-nas
49
B
-rwxr-xr-x
mpg123-openal
52
B
-rwxr-xr-x
mpg123-oss
49
B
-rwxr-xr-x
mpg123-portaudio
55
B
-rwxr-xr-x
mpg123-pulse
51
B
-rwxr-xr-x
mpg123-strip
14.58
KB
-rwxr-xr-x
mpg123.bin
155.63
KB
-rwxr-xr-x
mpost
800
KB
-rwxr-xr-x
mpstat
50.45
KB
-rwxr-xr-x
mptopdf
4.37
KB
-rwxr-xr-x
msgattrib
26.38
KB
-rwxr-xr-x
msgcat
26.38
KB
-rwxr-xr-x
msgcmp
26.38
KB
-rwxr-xr-x
msgcomm
26.38
KB
-rwxr-xr-x
msgconv
22.38
KB
-rwxr-xr-x
msgen
22.38
KB
-rwxr-xr-x
msgexec
22.38
KB
-rwxr-xr-x
msgfilter
34.38
KB
-rwxr-xr-x
msgfmt
82.59
KB
-rwxr-xr-x
msggrep
114.46
KB
-rwxr-xr-x
msginit
66.39
KB
-rwxr-xr-x
msgmerge
74.41
KB
-rwxr-xr-x
msgunfmt
34.39
KB
-rwxr-xr-x
msguniq
22.38
KB
-rwxr-xr-x
msxlint
18.33
KB
-rwxr-xr-x
mt
66.73
KB
-rwxr-xr-x
mt-gnu
66.73
KB
-rwxr-xr-x
mtr
114.01
KB
-rwxr-xr-x
mtr-packet
38.3
KB
-rwxr-xr-x
mtvtoppm
14.02
KB
-rwxr-xr-x
multilog
30.09
KB
-rwxr-xr-x
multitail
266.06
KB
-rwxr-xr-x
multixterm
29.85
KB
-rwxr-xr-x
munchlist
31.23
KB
-rwxr-xr-x
munpack
46.38
KB
-rwxr-xr-x
mutt
1.22
MB
-rwxr-xr-x
mutt_dotlock
14.3
KB
-rwxr-sr-x
mv
134.52
KB
-rwxr-xr-x
myisam_ftdump
6.35
MB
-rwxr-xr-x
mysql
6.65
MB
-rwxr-xr-x
mysql_config
4.97
KB
-rwxr-xr-x
mysql_config_editor
157.03
KB
-rwxr-xr-x
mysqladmin
6.49
MB
-rwxr-xr-x
mysqlanalyze
6.49
MB
-rwxr-xr-x
mysqlcheck
6.49
MB
-rwxr-xr-x
mysqldump
6.57
MB
-rwxr-xr-x
mysqldumpslow
7.54
KB
-rwxr-xr-x
mysqlimport
6.48
MB
-rwxr-xr-x
mysqloptimize
6.49
MB
-rwxr-xr-x
mysqlpump
6.85
MB
-rwxr-xr-x
mysqlrepair
6.49
MB
-rwxr-xr-x
mysqlreport
38.1
KB
-rwxr-xr-x
mysqlshow
6.49
MB
-rwxr-xr-x
mysqlslap
6.5
MB
-rwxr-xr-x
name2addr
14.38
KB
-rwxr-xr-x
namecheck
5.18
KB
-rwxr-xr-x
namei
22.38
KB
-rwxr-xr-x
nano
276.52
KB
-rwxr-xr-x
native2ascii
14.32
KB
-rwxr-xr-x
nawk
688.46
KB
-rwxr-xr-x
nc
38.63
KB
-rwxr-xr-x
nc.openbsd
38.63
KB
-rwxr-xr-x
ncal
36.95
KB
-rwxr-xr-x
ncftp
314.39
KB
-rwxr-xr-x
ncftp3
314.39
KB
-rwxr-xr-x
ncftpbatch
214.42
KB
-rwxr-xr-x
ncftpbookmarks
151.23
KB
-rwxr-xr-x
ncftpget
214.45
KB
-rwxr-xr-x
ncftpls
178.45
KB
-rwxr-xr-x
ncftpput
210.45
KB
-rwxr-xr-x
ncftpspooler
214.42
KB
-rwxr-xr-x
ncurses5-config
8.21
KB
-rwxr-xr-x
ncurses6-config
8.21
KB
-rwxr-xr-x
ncursesw5-config
8.21
KB
-rwxr-xr-x
ncursesw6-config
8.21
KB
-rwxr-xr-x
ndisc6
18.38
KB
-rwsr-xr-x
neotoppm
14.02
KB
-rwxr-xr-x
neqn
913
B
-rwxr-xr-x
net-server
3.34
KB
-rwxr-xr-x
netcat
38.63
KB
-rwxr-xr-x
netstat
154.59
KB
-rwxr-xr-x
networkctl
102.38
KB
-rwxr-xr-x
networkd-dispatcher
19.71
KB
-rwxr-xr-x
newaliases
30.45
KB
-rwxr-xr-x
newgrp
39.55
KB
-rwsr-xr-x
ngettext
34.38
KB
-rwxr-xr-x
nice
34.51
KB
-rwxr-xr-x
nisdomainname
22.23
KB
-rwxr-xr-x
nl
98.57
KB
-rwxr-xr-x
nm
43.63
KB
-rwxr-xr-x
nmudiff
12.79
KB
-rwxr-xr-x
nn
337.52
KB
-rwxr-xr-x
nnadmin
337.52
KB
-rwxr-xr-x
nnbatch
337.52
KB
-rwxr-xr-x
nncheck
337.52
KB
-rwxr-xr-x
nngoback
337.52
KB
-rwxr-xr-x
nngrab
943
B
-rwxr-xr-x
nngrep
337.52
KB
-rwxr-xr-x
nnpost
337.52
KB
-rwxr-xr-x
nnstats
3.2
KB
-rwxr-xr-x
nntidy
337.52
KB
-rwxr-xr-x
nnusage
1.31
KB
-rwxr-xr-x
nnview
337.52
KB
-rwxr-xr-x
node
26.08
KB
-rwxr-xr-x
nodejs
26.08
KB
-rwxr-xr-x
nohup
34.41
KB
-rwxr-xr-x
nokogiri
551
B
-rwxr-xr-x
nproc
34.51
KB
-rwxr-xr-x
nroff
3.22
KB
-rwxr-xr-x
nsenter
26.6
KB
-rwxr-xr-x
nslookup
118.82
KB
-rwxr-xr-x
nstat
30.38
KB
-rwxr-xr-x
nsupdate
74.55
KB
-rwxr-xr-x
ntfs-3g
159.01
KB
-rwxr-xr-x
ntfs-3g.probe
14.38
KB
-rwxr-xr-x
ntfscat
26.38
KB
-rwxr-xr-x
ntfscluster
38.38
KB
-rwxr-xr-x
ntfscmp
30.38
KB
-rwxr-xr-x
ntfsdecrypt
42.38
KB
-rwxr-xr-x
ntfsfallocate
26.38
KB
-rwxr-xr-x
ntfsfix
34.38
KB
-rwxr-xr-x
ntfsinfo
54.38
KB
-rwxr-xr-x
ntfsls
27.45
KB
-rwxr-xr-x
ntfsmove
30.38
KB
-rwxr-xr-x
ntfsrecover
106.38
KB
-rwxr-xr-x
ntfssecaudit
78.86
KB
-rwxr-xr-x
ntfstruncate
26.3
KB
-rwxr-xr-x
ntfsusermap
18.3
KB
-rwxr-xr-x
ntfswipe
42.91
KB
-rwxr-xr-x
ntpdc
150.27
KB
-rwxr-xr-x
ntpq
188.3
KB
-rwxr-xr-x
ntpsweep
7.79
KB
-rwxr-xr-x
ntptrace
3.48
KB
-rwxr-xr-x
numfmt
54.54
KB
-rwxr-xr-x
objcopy
162.54
KB
-rwxr-xr-x
objdump
365.13
KB
-rwxr-xr-x
od
66.51
KB
-rwxr-xr-x
odvicopy
54.4
KB
-rwxr-xr-x
odvitype
46.42
KB
-rwxr-xr-x
oem-getlogs
8.59
KB
-rwxr-xr-x
ofm2opl
107.65
KB
-rwxr-xr-x
omfonts
107.65
KB
-rwxr-xr-x
on_ac_power
3.7
KB
-rwxr-xr-x
open
25.46
KB
-rwxr-xr-x
openipmi_eventd
30.23
KB
-rwxr-xr-x
openipmicmd
26.16
KB
-rwxr-xr-x
openipmish
38.8
KB
-rwxr-xr-x
openssl
977.8
KB
-rwxr-xr-x
openvt
22.59
KB
-rwxr-xr-x
opl2ofm
107.65
KB
-rwxr-xr-x
orbd
14.38
KB
-rwxr-xr-x
origtargz
12.69
KB
-rwxr-xr-x
otangle
38.39
KB
-rwxr-xr-x
otp2ocp
30.31
KB
-rwxr-xr-x
out123
69.48
KB
-rwxr-xr-x
outocp
14.38
KB
-rwxr-xr-x
ovf2ovp
107.65
KB
-rwxr-xr-x
ovp2ovf
107.65
KB
-rwxr-xr-x
pack200
14.32
KB
-rwxr-xr-x
pager
194.38
KB
-rwxr-xr-x
palmtopnm
22.02
KB
-rwxr-xr-x
pamcut
18.02
KB
-rwxr-xr-x
pamdeinterlace
14.02
KB
-rwxr-xr-x
pamdice
14.02
KB
-rwxr-xr-x
pamfile
14.02
KB
-rwxr-xr-x
pamoil
14.02
KB
-rwxr-xr-x
pamstack
14.02
KB
-rwxr-xr-x
pamstretch
14.02
KB
-rwxr-xr-x
pamstretch-gen
1.31
KB
-rwxr-xr-x
paperconf
14.15
KB
-rwxr-xr-x
partx
58.38
KB
-rwxr-xr-x
passenger
1.64
KB
-rwxr-xr-x
passenger-config
1.5
KB
-rwxr-xr-x
passmass
4.45
KB
-rwxr-xr-x
passwd
58.57
KB
-rwsr-xr-x
paste
34.41
KB
-rwxr-xr-x
pastebinit
16.12
KB
-rwxr-xr-x
pasteurize
964
B
-rwxr-xr-x
patch
186.52
KB
-rwxr-xr-x
patchview
55.48
KB
-rwxr-xr-x
patgen
34.38
KB
-rwxr-xr-x
pathchk
34.51
KB
-rwxr-xr-x
pbget
2.51
KB
-rwxr-xr-x
pbibtex
110.39
KB
-rwxr-xr-x
pbmclean
14.02
KB
-rwxr-xr-x
pbmlife
14.02
KB
-rwxr-xr-x
pbmmake
14.02
KB
-rwxr-xr-x
pbmmask
14.02
KB
-rwxr-xr-x
pbmpage
14.02
KB
-rwxr-xr-x
pbmpscale
14.13
KB
-rwxr-xr-x
pbmreduce
14.02
KB
-rwxr-xr-x
pbmtext
14.02
KB
-rwxr-xr-x
pbmtextps
14.02
KB
-rwxr-xr-x
pbmto10x
14.02
KB
-rwxr-xr-x
pbmtoascii
14.29
KB
-rwxr-xr-x
pbmtoatk
14.02
KB
-rwxr-xr-x
pbmtobbnbg
14.02
KB
-rwxr-xr-x
pbmtocmuwm
14.02
KB
-rwxr-xr-x
pbmtoepsi
14.02
KB
-rwxr-xr-x
pbmtoepson
14.02
KB
-rwxr-xr-x
pbmtog3
17.13
KB
-rwxr-xr-x
pbmtogem
14.02
KB
-rwxr-xr-x
pbmtogo
14.02
KB
-rwxr-xr-x
pbmtoicon
14.02
KB
-rwxr-xr-x
pbmtolj
18.03
KB
-rwxr-xr-x
pbmtomacp
14.02
KB
-rwxr-xr-x
pbmtomda
14.02
KB
-rwxr-xr-x
pbmtomgr
14.02
KB
-rwxr-xr-x
pbmtonokia
14.02
KB
-rwxr-xr-x
pbmtopgm
14.02
KB
-rwxr-xr-x
pbmtopi3
14.02
KB
-rwxr-xr-x
pbmtoplot
14.02
KB
-rwxr-xr-x
pbmtoppa
30.03
KB
-rwxr-xr-x
pbmtopsg3
15.66
KB
-rwxr-xr-x
pbmtoptx
14.02
KB
-rwxr-xr-x
pbmtowbmp
14.02
KB
-rwxr-xr-x
pbmtox10bm
14.02
KB
-rwxr-xr-x
pbmtoxbm
14.02
KB
-rwxr-xr-x
pbmtoybm
14.02
KB
-rwxr-xr-x
pbmtozinc
14.02
KB
-rwxr-xr-x
pbmupc
22.02
KB
-rwxr-xr-x
pbput
2.51
KB
-rwxr-xr-x
pbputs
2.51
KB
-rwxr-xr-x
pchrt
4.51
KB
-rwxr-xr-x
pcxtoppm
22.02
KB
-rwxr-xr-x
pdb3
61.74
KB
-rwxr-xr-x
pdb3.10
61.74
KB
-rwxr-xr-x
pdf2dsc
698
B
-rwxr-xr-x
pdf2ps
909
B
-rwxr-xr-x
pdfattach
18.38
KB
-rwxr-xr-x
pdfclose
14.3
KB
-rwxr-xr-x
pdfdetach
22.49
KB
-rwxr-xr-x
pdfetex
1.72
MB
-rwxr-xr-x
pdffonts
22.52
KB
-rwxr-xr-x
pdfimages
38.52
KB
-rwxr-xr-x
pdfinfo
58.52
KB
-rwxr-xr-x
pdflatex
1.72
MB
-rwxr-xr-x
pdfmom
3.03
KB
-rwxr-xr-x
pdfopen
26.38
KB
-rwxr-xr-x
pdfroff
20.96
KB
-rwxr-xr-x
pdfseparate
22.38
KB
-rwxr-xr-x
pdfsig
34.77
KB
-rwxr-xr-x
pdftex
1.72
MB
-rwxr-xr-x
pdftocairo
134.48
KB
-rwxr-xr-x
pdftohtml
106.41
KB
-rwxr-xr-x
pdftoppm
34.41
KB
-rwxr-xr-x
pdftops
34.53
KB
-rwxr-xr-x
pdftosrc
809.88
KB
-rwxr-xr-x
pdftotext
42.52
KB
-rwxr-xr-x
pdfunite
30.38
KB
-rwxr-xr-x
pdvitomp
804.04
KB
-rwxr-xr-x
pdvitype
58.43
KB
-rwxr-xr-x
peekfd
14.3
KB
-rwxr-xr-x
perl
3.63
MB
-rwxr-xr-x
perl5.34-x86_64-linux-gnu
14.3
KB
-rwxr-xr-x
perl5.34.0
3.63
MB
-rwxr-xr-x
perlbug
44.12
KB
-rwxr-xr-x
perldoc
262
B
-rwxr-xr-x
perldoc.stub
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlsh
11.76
KB
-rwxr-xr-x
perlthanks
44.12
KB
-rwxr-xr-x
pf2afm
498
B
-rwxr-xr-x
pfb2pfa
14.3
KB
-rwxr-xr-x
pfbtopfa
516
B
-rwxr-xr-x
pfbtops
26.38
KB
-rwxr-xr-x
pg_basebackup
9.21
KB
-rwxr-xr-x
pg_dump
9.21
KB
-rwxr-xr-x
pg_dumpall
9.21
KB
-rwxr-xr-x
pg_isready
9.21
KB
-rwxr-xr-x
pg_receivewal
9.21
KB
-rwxr-xr-x
pg_receivexlog
9.21
KB
-rwxr-xr-x
pg_recvlogical
9.21
KB
-rwxr-xr-x
pg_restore
9.21
KB
-rwxr-xr-x
pgbench
9.21
KB
-rwxr-xr-x
pgmbentley
14.02
KB
-rwxr-xr-x
pgmcrater
18.05
KB
-rwxr-xr-x
pgmedge
14.02
KB
-rwxr-xr-x
pgmenhance
14.02
KB
-rwxr-xr-x
pgmhist
14.02
KB
-rwxr-xr-x
pgmkernel
14.02
KB
-rwxr-xr-x
pgmnoise
14.02
KB
-rwxr-xr-x
pgmnorm
14.02
KB
-rwxr-xr-x
pgmoil
14.02
KB
-rwxr-xr-x
pgmramp
14.02
KB
-rwxr-xr-x
pgmslice
14.02
KB
-rwxr-xr-x
pgmtexture
30.02
KB
-rwxr-xr-x
pgmtofs
14.02
KB
-rwxr-xr-x
pgmtolispm
14.02
KB
-rwxr-xr-x
pgmtopbm
20.45
KB
-rwxr-xr-x
pgmtoppm
14.02
KB
-rwxr-xr-x
pgrep
30.24
KB
-rwxr-xr-x
pgrphack
21.99
KB
-rwxr-xr-x
php
12.01
MB
-rwxr-xr-x
pi1toppm
14.02
KB
-rwxr-xr-x
pi3topbm
14.02
KB
-rwxr-xr-x
pic
200.04
KB
-rwxr-xr-x
pic2graph
3.66
KB
-rwxr-xr-x
pico
276.52
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pidof
30.38
KB
-rwxr-xr-x
pidstat
50.45
KB
-rwxr-xr-x
pidwait
30.24
KB
-rwxr-xr-x
pinentry
58.65
KB
-rwxr-xr-x
pinentry-curses
58.65
KB
-rwxr-xr-x
ping
74.88
KB
-rwxr-xr-x
ping4
74.88
KB
-rwxr-xr-x
ping6
74.88
KB
-rwxr-xr-x
pinky
34.41
KB
-rwxr-xr-x
pip
221
B
-rwxr-xr-x
pip3
221
B
-rwxr-xr-x
pip3.10
221
B
-rwxr-xr-x
pjtoppm
18.03
KB
-rwxr-xr-x
pk2bm
18.3
KB
-rwxr-xr-x
pkaction
18.3
KB
-rwxr-xr-x
pkcheck
22.3
KB
-rwxr-xr-x
pkcon
58.3
KB
-rwxr-xr-x
pkexec
30.15
KB
-rwsr-xr-x
pkg-config
50.28
KB
-rwxr-xr-x
pkgdata
43.53
KB
-rwxr-xr-x
pkill
30.24
KB
-rwxr-xr-x
pkmon
22.3
KB
-rwxr-xr-x
pktogf
22.38
KB
-rwxr-xr-x
pkttyagent
18.3
KB
-rwxr-xr-x
pktype
18.38
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
22.37
KB
-rwxr-xr-x
plotchangelog
13.42
KB
-rwxr-xr-x
pltotf
46.38
KB
-rwxr-xr-x
plymouth
46.3
KB
-rwxr-xr-x
pmap
34.24
KB
-rwxr-xr-x
pmpost
804.04
KB
-rwxr-xr-x
pmxab
618.03
KB
-rwxr-xr-x
pngtogd
14.15
KB
-rwxr-xr-x
pngtogd2
14.15
KB
-rwxr-xr-x
pngtopnm
26.11
KB
-rwxr-xr-x
pnmalias
18.02
KB
-rwxr-xr-x
pnmarith
14.02
KB
-rwxr-xr-x
pnmcat
14.02
KB
-rwxr-xr-x
pnmcolormap
18.02
KB
-rwxr-xr-x
pnmcomp
14.02
KB
-rwxr-xr-x
pnmconvol
42.02
KB
-rwxr-xr-x
pnmcrop
14.02
KB
-rwxr-xr-x
pnmcut
14.02
KB
-rwxr-xr-x
pnmdepth
14.02
KB
-rwxr-xr-x
pnmenlarge
14.02
KB
-rwxr-xr-x
pnmfile
14.02
KB
-rwxr-xr-x
pnmflip
14.02
KB
-rwxr-xr-x
pnmgamma
18.02
KB
-rwxr-xr-x
pnmhisteq
18.02
KB
-rwxr-xr-x
pnmhistmap
14.02
KB
-rwxr-xr-x
pnmindex
4.49
KB
-rwxr-xr-x
pnminterp
14.02
KB
-rwxr-xr-x
pnminterp-gen
1.31
KB
-rwxr-xr-x
pnminvert
14.02
KB
-rwxr-xr-x
pnmmargin
1.73
KB
-rwxr-xr-x
pnmmontage
18.03
KB
-rwxr-xr-x
pnmnlfilt
22.09
KB
-rwxr-xr-x
pnmnoraw
14.02
KB
-rwxr-xr-x
pnmnorm
14.02
KB
-rwxr-xr-x
pnmpad
14.02
KB
-rwxr-xr-x
pnmpaste
14.02
KB
-rwxr-xr-x
pnmpsnr
14.02
KB
-rwxr-xr-x
pnmquant
3.13
KB
-rwxr-xr-x
pnmremap
18.02
KB
-rwxr-xr-x
pnmrotate
18.02
KB
-rwxr-xr-x
pnmscale
22.02
KB
-rwxr-xr-x
pnmscalefixed
18.02
KB
-rwxr-xr-x
pnmshear
14.02
KB
-rwxr-xr-x
pnmsmooth
14.02
KB
-rwxr-xr-x
pnmsplit
14.02
KB
-rwxr-xr-x
pnmtile
14.02
KB
-rwxr-xr-x
pnmtoddif
18.02
KB
-rwxr-xr-x
pnmtofiasco
208.05
KB
-rwxr-xr-x
pnmtofits
14.02
KB
-rwxr-xr-x
pnmtojpeg
22.02
KB
-rwxr-xr-x
pnmtopalm
22.02
KB
-rwxr-xr-x
pnmtoplainpnm
14.02
KB
-rwxr-xr-x
pnmtopng
38.09
KB
-rwxr-xr-x
pnmtops
18.02
KB
-rwxr-xr-x
pnmtorast
14.02
KB
-rwxr-xr-x
pnmtorle
42.3
KB
-rwxr-xr-x
pnmtosgi
18.02
KB
-rwxr-xr-x
pnmtosir
14.02
KB
-rwxr-xr-x
pnmtotiff
18.02
KB
-rwxr-xr-x
pnmtotiffcmyk
22.02
KB
-rwxr-xr-x
pnmtoxwd
14.02
KB
-rwxr-xr-x
pod2html
4.04
KB
-rwxr-xr-x
pod2man
14.68
KB
-rwxr-xr-x
pod2text
10.55
KB
-rwxr-xr-x
pod2usage
4.01
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
policytool
14.32
KB
-rwxr-xr-x
pollinate
8.54
KB
-rwxr-xr-x
pooltype
14.37
KB
-rwxr-xr-x
post-grohtml
198.51
KB
-rwxr-xr-x
pphs
404
B
-rwxr-xr-x
ppltotf
62.39
KB
-rwxr-xr-x
ppm3d
18.02
KB
-rwxr-xr-x
ppmbrighten
14.02
KB
-rwxr-xr-x
ppmchange
14.02
KB
-rwxr-xr-x
ppmcie
26.19
KB
-rwxr-xr-x
ppmcolormask
14.02
KB
-rwxr-xr-x
ppmcolors
14.02
KB
-rwxr-xr-x
ppmdim
14.02
KB
-rwxr-xr-x
ppmdist
14.02
KB
-rwxr-xr-x
ppmdither
14.02
KB
-rwxr-xr-x
ppmfade
11.39
KB
-rwxr-xr-x
ppmflash
14.02
KB
-rwxr-xr-x
ppmforge
22.03
KB
-rwxr-xr-x
ppmhist
14.02
KB
-rwxr-xr-x
ppmlabel
14.02
KB
-rwxr-xr-x
ppmmake
14.02
KB
-rwxr-xr-x
ppmmix
14.02
KB
-rwxr-xr-x
ppmnorm
14.02
KB
-rwxr-xr-x
ppmntsc
18.02
KB
-rwxr-xr-x
ppmpat
26.02
KB
-rwxr-xr-x
ppmquant
18.02
KB
-rwxr-xr-x
ppmquantall
2.02
KB
-rwxr-xr-x
ppmqvga
18.02
KB
-rwxr-xr-x
ppmrainbow
1.67
KB
-rwxr-xr-x
ppmrelief
14.02
KB
-rwxr-xr-x
ppmshadow
6.67
KB
-rwxr-xr-x
ppmshift
14.02
KB
-rwxr-xr-x
ppmspread
14.02
KB
-rwxr-xr-x
ppmtoacad
18.88
KB
-rwxr-xr-x
ppmtobmp
18.07
KB
-rwxr-xr-x
ppmtoeyuv
14.02
KB
-rwxr-xr-x
ppmtogif
22.03
KB
-rwxr-xr-x
ppmtoicr
14.02
KB
-rwxr-xr-x
ppmtoilbm
46.11
KB
-rwxr-xr-x
ppmtojpeg
22.02
KB
-rwxr-xr-x
ppmtoleaf
14.02
KB
-rwxr-xr-x
ppmtolj
14.02
KB
-rwxr-xr-x
ppmtomap
81
B
-rwxr-xr-x
ppmtomitsu
22.02
KB
-rwxr-xr-x
ppmtompeg
541.94
KB
-rwxr-xr-x
ppmtoneo
14.02
KB
-rwxr-xr-x
ppmtopcx
18.02
KB
-rwxr-xr-x
ppmtopgm
18.02
KB
-rwxr-xr-x
ppmtopi1
14.02
KB
-rwxr-xr-x
ppmtopict
14.02
KB
-rwxr-xr-x
ppmtopj
14.09
KB
-rwxr-xr-x
ppmtopuzz
14.02
KB
-rwxr-xr-x
ppmtorgb3
14.02
KB
-rwxr-xr-x
ppmtosixel
14.02
KB
-rwxr-xr-x
ppmtotga
18.02
KB
-rwxr-xr-x
ppmtouil
14.02
KB
-rwxr-xr-x
ppmtowinicon
18.05
KB
-rwxr-xr-x
ppmtoxpm
18.02
KB
-rwxr-xr-x
ppmtoyuv
14.02
KB
-rwxr-xr-x
ppmtoyuvsplit
14.02
KB
-rwxr-xr-x
ppmtv
14.02
KB
-rwxr-xr-x
pr
66.58
KB
-rwxr-xr-x
pre-grohtml
90.52
KB
-rwxr-xr-x
precat
5.52
KB
-rwxr-xr-x
preconv
54.48
KB
-rwxr-xr-x
prepmx
131.63
KB
-rwxr-xr-x
preunzip
5.52
KB
-rwxr-xr-x
prezip
5.52
KB
-rwxr-xr-x
prezip-bin
14.3
KB
-rwxr-xr-x
print
18.06
KB
-rwxr-xr-x
printafm
395
B
-rwxr-xr-x
printenv
30.38
KB
-rwxr-xr-x
printf
50.44
KB
-rwxr-xr-x
prlimit
26.89
KB
-rwxr-xr-x
pro
1003
B
-rwxr-xr-x
procan
30.4
KB
-rwxr-xr-x
procinfo
106.2
KB
-rwxr-xr-x
procmail
106.52
KB
-rwsr-sr-x
prove
13.34
KB
-rwxr-xr-x
prtstat
22.38
KB
-rwxr-xr-x
ps
138.45
KB
-rwxr-xr-x
ps2ascii
631
B
-rwxr-xr-x
ps2epsi
1.23
KB
-rwxr-xr-x
ps2pdf
272
B
-rwxr-xr-x
ps2pdf12
215
B
-rwxr-xr-x
ps2pdf13
215
B
-rwxr-xr-x
ps2pdf14
215
B
-rwxr-xr-x
ps2pdfwr
1.05
KB
-rwxr-xr-x
ps2pk
129.27
KB
-rwxr-xr-x
ps2ps
647
B
-rwxr-xr-x
ps2ps2
669
B
-rwxr-xr-x
ps2txt
631
B
-rwxr-xr-x
psfaddtable
26.23
KB
-rwxr-xr-x
psfgettable
26.23
KB
-rwxr-xr-x
psfstriptable
26.23
KB
-rwxr-xr-x
psfxtable
26.23
KB
-rwxr-xr-x
psidtopgm
14.02
KB
-rwxr-xr-x
pslog
14.3
KB
-rwxr-xr-x
psql
9.21
KB
-rwxr-xr-x
pstopnm
18.02
KB
-rwxr-xr-x
pstree
35.32
KB
-rwxr-xr-x
pstree.x11
35.32
KB
-rwxr-xr-x
ptar
3.48
KB
-rwxr-xr-x
ptardiff
2.58
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptaskset
4.46
KB
-rwxr-xr-x
ptex
456.16
KB
-rwxr-xr-x
ptftopl
46.41
KB
-rwxr-xr-x
pth-config
3.93
KB
-rwxr-xr-x
pts-subscribe
4.66
KB
-rwxr-xr-x
pts-unsubscribe
4.66
KB
-rwxr-xr-x
ptx
126.55
KB
-rwxr-xr-x
puma
527
B
-rwxr-xr-x
pumactl
533
B
-rwxr-xr-x
purge-old-kernels
1.12
KB
-rwxr-xr-x
pwd
34.51
KB
-rwxr-xr-x
pwdx
14.23
KB
-rwxr-xr-x
py3clean
7.63
KB
-rwxr-xr-x
py3compile
12.88
KB
-rwxr-xr-x
py3rsa-decrypt
952
B
-rwxr-xr-x
py3rsa-encrypt
952
B
-rwxr-xr-x
py3rsa-keygen
950
B
-rwxr-xr-x
py3rsa-priv2pub
954
B
-rwxr-xr-x
py3rsa-sign
946
B
-rwxr-xr-x
py3rsa-verify
950
B
-rwxr-xr-x
py3versions
11.63
KB
-rwxr-xr-x
pybabel
953
B
-rwxr-xr-x
pybabel-python3
953
B
-rwxr-xr-x
pydoc3
79
B
-rwxr-xr-x
pydoc3.10
79
B
-rwxr-xr-x
pygettext3
23.67
KB
-rwxr-xr-x
pygettext3.10
23.67
KB
-rwxr-xr-x
pygmentize
970
B
-rwxr-xr-x
pyserial-miniterm
975
B
-rwxr-xr-x
pyserial-ports
969
B
-rwxr-xr-x
python
5.66
MB
-rwxr-xr-x
python2.7
3.43
MB
-rwxr-xr-x
python3
5.66
MB
-rwxr-xr-x
python3-config
3.05
KB
-rwxr-xr-x
python3-futurize
960
B
-rwxr-xr-x
python3-pasteurize
964
B
-rwxr-xr-x
python3.10
5.66
MB
-rwxr-xr-x
python3.10-config
3.05
KB
-rwxr-xr-x
pzstd
702.47
KB
-rwxr-xr-x
qrttoppm
14.02
KB
-rwxr-xr-x
qsexec
18.15
KB
-rwxr-xr-x
qsfilter2
54.16
KB
-rwxr-xr-x
qsgrep
18.15
KB
-rwxr-xr-x
qslog
58.16
KB
-rwxr-xr-x
qslogger
22.23
KB
-rwxr-xr-x
qspng
35.59
KB
-rwxr-xr-x
qsrotate
30.18
KB
-rwxr-xr-x
qssign
30.25
KB
-rwxr-xr-x
qstail
14.15
KB
-rwxr-xr-x
qt-faststart
18.3
KB
-rwxr-xr-x
r-mpost
800
KB
-rwxr-xr-x
r-pmpost
804.04
KB
-rwxr-xr-x
r-upmpost
808.04
KB
-rwxr-xr-x
racc
8.28
KB
-rwxr-xr-x
racc2y
4.53
KB
-rwxr-xr-x
racc3.0
586
B
-rwxr-xr-x
rackup
531
B
-rwxr-xr-x
rails
545
B
-rwxr-xr-x
rake
527
B
-rwxr-xr-x
rake3.0
530
B
-rwxr-xr-x
ranlib
54.48
KB
-rwxr-xr-x
rasttopnm
18.02
KB
-rwxr-xr-x
rawtopgm
14.02
KB
-rwxr-xr-x
rawtoppm
14.02
KB
-rwxr-xr-x
rbash
1.33
MB
-rwxr-xr-x
rbs3.0
524
B
-rwxr-xr-x
rc-alert
15.01
KB
-rwxr-xr-x
rcp
130.59
KB
-rwxr-xr-x
rcs
194.88
KB
-rwxr-xr-x
rcsclean
825
B
-rwxr-xr-x
rcsdiff
822
B
-rwxr-xr-x
rcsmerge
825
B
-rwxr-xr-x
rdebsums
2.61
KB
-rwxr-xr-x
rdiffdir
8.91
KB
-rwxr-xr-x
rdisc6
26.38
KB
-rwsr-xr-x
rdjpgcom
14.14
KB
-rwxr-xr-x
rdma
98.52
KB
-rwxr-xr-x
rdoc
513
B
-rwxr-xr-x
rdoc3.0
513
B
-rwxr-xr-x
readelf
758.44
KB
-rwxr-xr-x
readlink
38.41
KB
-rwxr-xr-x
readmsg
35.91
KB
-rwxr-xr-x
readmsg.mailutils
35.91
KB
-rwxr-xr-x
readproctitle
13.94
KB
-rwxr-xr-x
realpath
38.41
KB
-rwxr-xr-x
recode
38.23
KB
-rwxr-xr-x
recode-sr-latin
14.38
KB
-rwxr-xr-x
recountdiff
3.37
KB
-rwxr-xr-x
red
89
B
-rwxr-xr-x
redcloth
551
B
-rwxr-xr-x
rediff
30.42
KB
-rwxr-xr-x
refer
134.52
KB
-rwxr-xr-x
reformail
58.25
KB
-rwxr-xr-x
reformime
86.27
KB
-rwxr-xr-x
reindexdb
9.21
KB
-rwxr-xr-x
renice
14.38
KB
-rwxr-xr-x
reproducible-check
7.97
KB
-rwxr-xr-x
rescan-scsi-bus.sh
38.05
KB
-rwxr-xr-x
reset
26.31
KB
-rwxr-xr-x
resizecons
26.32
KB
-rwxr-xr-x
resizepart
22.38
KB
-rwxr-xr-x
resolvectl
130.52
KB
-rwxr-xr-x
rev
14.38
KB
-rwxr-xr-x
rgb3toppm
14.02
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
ri
509
B
-rwxr-xr-x
ri3.0
509
B
-rwxr-xr-x
rimraf
1.83
KB
-rwxr-xr-x
rjoe
729.83
KB
-rwxr-xr-x
rksh
1.36
MB
-rwxr-xr-x
rksh93
1.36
MB
-rwxr-xr-x
rletopnm
42.27
KB
-rwxr-xr-x
rlog
813
B
-rwxr-xr-x
rlogin
827.04
KB
-rwxr-xr-x
rlogin-cwd
504
B
-rwxr-xr-x
rltraceroute6
34.45
KB
-rwsr-xr-x
rm
58.51
KB
-rwxr-xr-x
rmadison
12.55
KB
-rwxr-xr-x
rmail
18.3
KB
-rwxr-xr-x
rmcp_ping
14.16
KB
-rwxr-xr-x
rmdir
42.41
KB
-rwxr-xr-x
rmic
14.32
KB
-rwxr-xr-x
rmid
14.32
KB
-rwxr-xr-x
rmiregistry
14.32
KB
-rwxr-xr-x
rnano
276.52
KB
-rwxr-xr-x
roff2dvi
5.58
KB
-rwxr-xr-x
roff2html
5.58
KB
-rwxr-xr-x
roff2pdf
5.58
KB
-rwxr-xr-x
roff2ps
5.58
KB
-rwxr-xr-x
roff2text
5.58
KB
-rwxr-xr-x
roff2x
5.58
KB
-rwxr-xr-x
rotatelogs
26.38
KB
-rwxr-xr-x
routef
208
B
-rwxr-xr-x
routel
1.62
KB
-rwxr-xr-x
rpcgen
94.59
KB
-rwxr-xr-x
rpcinfo
34.48
KB
-rwxr-xr-x
rpdump
996.76
KB
-rwxr-xr-x
rpload
1008.76
KB
-rwxr-xr-x
rrdcgi
34.3
KB
-rwxr-xr-x
rrdcreate
126.58
KB
-rwxr-xr-x
rrdinfo
126.58
KB
-rwxr-xr-x
rrdtool
34.3
KB
-rwxr-xr-x
rrdupdate
126.58
KB
-rwxr-xr-x
rrsync
12.34
KB
-rwxr-xr-x
rsh
827.04
KB
-rwxr-xr-x
rst-buildhtml
10.58
KB
-rwxr-xr-x
rst2html
594
B
-rwxr-xr-x
rst2html4
714
B
-rwxr-xr-x
rst2html5
1.06
KB
-rwxr-xr-x
rst2latex
791
B
-rwxr-xr-x
rst2man
599
B
-rwxr-xr-x
rst2odt
764
B
-rwxr-xr-x
rst2odt_prepstyles
2.28
KB
-rwxr-xr-x
rst2pseudoxml
601
B
-rwxr-xr-x
rst2s5
637
B
-rwxr-xr-x
rst2xetex
871
B
-rwxr-xr-x
rst2xml
602
B
-rwxr-xr-x
rstpep2html
670
B
-rwxr-xr-x
rsync
506.13
KB
-rwxr-xr-x
rsync-ssl
5.02
KB
-rwxr-xr-x
rtin
1
MB
-rwxr-xr-x
rtstat
22.66
KB
-rwxr-xr-x
ruby
14.15
KB
-rwxr-xr-x
ruby3.0
14.15
KB
-rwxr-xr-x
run-mailcap
18.06
KB
-rwxr-xr-x
run-one
3.51
KB
-rwxr-xr-x
run-one-constantly
3.51
KB
-rwxr-xr-x
run-one-until-failure
3.51
KB
-rwxr-xr-x
run-one-until-success
3.51
KB
-rwxr-xr-x
run-parts
26.54
KB
-rwxr-xr-x
run-this-one
3.51
KB
-rwxr-xr-x
run-with-aspell
57
B
-rwxr-xr-x
runcon
34.51
KB
-rwxr-xr-x
rungs
901
B
-rwxr-xr-x
runsv
30.34
KB
-rwxr-xr-x
runsvdir
26.34
KB
-rwxr-xr-x
rushlast
75.19
KB
-rwxr-xr-x
rushwho
75.03
KB
-rwxr-xr-x
rview
3.61
MB
-rwxr-xr-x
rvim
3.61
MB
-rwxr-xr-x
rzsh
989.58
KB
-rwxr-xr-x
s3cmd
148.18
KB
-rwxr-xr-x
sadf
390.24
KB
-rwxr-xr-x
sadt
18.29
KB
-rwxr-xr-x
safecat
22.16
KB
-rwxr-xr-x
salsa
22.04
KB
-rwxr-xr-x
sar
133.45
KB
-rwxr-xr-x
sar.sysstat
133.45
KB
-rwxr-xr-x
sass
527
B
-rwxr-xr-x
sass-convert
543
B
-rwxr-xr-x
savelog
10.24
KB
-rwxr-xr-x
sbattach
26.54
KB
-rwxr-xr-x
sbigtopgm
14.12
KB
-rwxr-xr-x
sbkeysync
34.74
KB
-rwxr-xr-x
sbsiglist
14.6
KB
-rwxr-xr-x
sbsign
34.7
KB
-rwxr-xr-x
sbvarsign
22.73
KB
-rwxr-xr-x
sbverify
34.61
KB
-rwxr-xr-x
scandeps
6.45
KB
-rwxr-xr-x
schedtool
22.22
KB
-rwxr-xr-x
schemagen
14.32
KB
-rwxr-xr-x
scor2prt
80.57
KB
-rwxr-xr-x
scp
130.59
KB
-rwxr-xr-x
screen
466.24
KB
-rwxr-xr-x
screendump
14.15
KB
-rwxr-xr-x
script
50.38
KB
-rwxr-xr-x
scriptlive
42.38
KB
-rwxr-xr-x
scriptreplay
34.38
KB
-rwxr-xr-x
scsi_logging_level
8.38
KB
-rwxr-xr-x
scsi_mandat
3.52
KB
-rwxr-xr-x
scsi_readcap
1.3
KB
-rwxr-xr-x
scsi_ready
1.09
KB
-rwxr-xr-x
scsi_satl
3.74
KB
-rwxr-xr-x
scsi_start
1.25
KB
-rwxr-xr-x
scsi_stop
1.44
KB
-rwxr-xr-x
scsi_temperature
936
B
-rwxr-xr-x
scss
527
B
-rwxr-xr-x
sdiff
46.39
KB
-rwxr-xr-x
sdrcomp
65.82
KB
-rwxr-xr-x
sed
110.57
KB
-rwxr-xr-x
see
18.06
KB
-rwxr-xr-x
select-default-iwrap
474
B
-rwxr-xr-x
select-editor
2.39
KB
-rwxr-xr-x
semver
4.26
KB
-rwxr-xr-x
sensible-browser
1.26
KB
-rwxr-xr-x
sensible-editor
1.24
KB
-rwxr-xr-x
sensible-pager
565
B
-rwxr-xr-x
seq
46.51
KB
-rwxr-xr-x
serialver
14.32
KB
-rwxr-xr-x
servertool
14.32
KB
-rwxr-xr-x
setarch
26.65
KB
-rwxr-xr-x
setfacl
42.91
KB
-rwxr-xr-x
setfattr
18.59
KB
-rwxr-xr-x
setfont
50.32
KB
-rwxr-xr-x
setkeycodes
14.23
KB
-rwxr-xr-x
setleds
18.21
KB
-rwxr-xr-x
setlock
22.02
KB
-rwxr-xr-x
setlogcons
14.23
KB
-rwxr-xr-x
setmetamode
14.26
KB
-rwxr-xr-x
setpci
30.38
KB
-rwxr-xr-x
setpriv
38.38
KB
-rwxr-xr-x
setsid
14.38
KB
-rwxr-xr-x
setterm
34.38
KB
-rwxr-xr-x
setuidgid
21.99
KB
-rwxr-xr-x
setupcon
38.31
KB
-rwxr-xr-x
setxkbmap
26.7
KB
-rwxr-xr-x
sftp
142.66
KB
-rwxr-xr-x
sg
39.55
KB
-rwsr-xr-x
sg_bg_ctl
14.51
KB
-rwxr-xr-x
sg_compare_and_write
26.91
KB
-rwxr-xr-x
sg_copy_results
23.3
KB
-rwxr-xr-x
sg_dd
54.33
KB
-rwxr-xr-x
sg_decode_sense
14.76
KB
-rwxr-xr-x
sg_emc_trespass
14.3
KB
-rwxr-xr-x
sg_format
39.35
KB
-rwxr-xr-x
sg_get_config
35.39
KB
-rwxr-xr-x
sg_get_elem_status
26.79
KB
-rwxr-xr-x
sg_get_lba_status
22.95
KB
-rwxr-xr-x
sg_ident
14.6
KB
-rwxr-xr-x
sg_inq
119.61
KB
-rwxr-xr-x
sg_logs
150.93
KB
-rwxr-xr-x
sg_luns
22.79
KB
-rwxr-xr-x
sg_map
18.3
KB
-rwxr-xr-x
sg_map26
26.7
KB
-rwxr-xr-x
sg_modes
46.08
KB
-rwxr-xr-x
sg_opcodes
35.01
KB
-rwxr-xr-x
sg_persist
36.08
KB
-rwxr-xr-x
sg_prevent
14.51
KB
-rwxr-xr-x
sg_raw
26.91
KB
-rwxr-xr-x
sg_rbuf
22.73
KB
-rwxr-xr-x
sg_rdac
14.3
KB
-rwxr-xr-x
sg_read
26.31
KB
-rwxr-xr-x
sg_read_attr
36.65
KB
-rwxr-xr-x
sg_read_block_limits
14.54
KB
-rwxr-xr-x
sg_read_buffer
27.56
KB
-rwxr-xr-x
sg_read_long
14.7
KB
-rwxr-xr-x
sg_readcap
22.79
KB
-rwxr-xr-x
sg_reassign
14.66
KB
-rwxr-xr-x
sg_referrals
14.66
KB
-rwxr-xr-x
sg_rep_pip
14.57
KB
-rwxr-xr-x
sg_rep_zones
26.8
KB
-rwxr-xr-x
sg_requests
22.76
KB
-rwxr-xr-x
sg_reset
14.66
KB
-rwxr-xr-x
sg_reset_wp
14.6
KB
-rwxr-xr-x
sg_rmsn
14.51
KB
-rwxr-xr-x
sg_rtpg
14.6
KB
-rwxr-xr-x
sg_safte
22.7
KB
-rwxr-xr-x
sg_sanitize
27.01
KB
-rwxr-xr-x
sg_sat_identify
18.73
KB
-rwxr-xr-x
sg_sat_phy_event
19.01
KB
-rwxr-xr-x
sg_sat_read_gplog
18.73
KB
-rwxr-xr-x
sg_sat_set_features
18.7
KB
-rwxr-xr-x
sg_scan
18.3
KB
-rwxr-xr-x
sg_seek
18.88
KB
-rwxr-xr-x
sg_senddiag
27.2
KB
-rwxr-xr-x
sg_ses
119.97
KB
-rwxr-xr-x
sg_ses_microcode
27.36
KB
-rwxr-xr-x
sg_start
18.85
KB
-rwxr-xr-x
sg_stpg
22.73
KB
-rwxr-xr-x
sg_stream_ctl
18.7
KB
-rwxr-xr-x
sg_sync
14.66
KB
-rwxr-xr-x
sg_test_rwbuf
18.6
KB
-rwxr-xr-x
sg_timestamp
18.83
KB
-rwxr-xr-x
sg_turs
26.7
KB
-rwxr-xr-x
sg_unmap
22.76
KB
-rwxr-xr-x
sg_verify
18.91
KB
-rwxr-xr-x
sg_vpd
114.42
KB
-rwxr-xr-x
sg_wr_mode
22.73
KB
-rwxr-xr-x
sg_write_buffer
27.23
KB
-rwxr-xr-x
sg_write_long
14.76
KB
-rwxr-xr-x
sg_write_same
26.95
KB
-rwxr-xr-x
sg_write_verify
26.79
KB
-rwxr-xr-x
sg_write_x
55.6
KB
-rwxr-xr-x
sg_xcopy
42.32
KB
-rwxr-xr-x
sg_zone
14.86
KB
-rwxr-xr-x
sginfo
72.01
KB
-rwxr-xr-x
sgitopnm
18.02
KB
-rwxr-xr-x
sgm_dd
38.31
KB
-rwxr-xr-x
sgp_dd
46.31
KB
-rwxr-xr-x
sh
1.33
MB
-rwxr-xr-x
sha1sum
42.41
KB
-rwxr-xr-x
sha224sum
50.41
KB
-rwxr-xr-x
sha256sum
50.41
KB
-rwxr-xr-x
sha384sum
58.41
KB
-rwxr-xr-x
sha3sum
9.41
KB
-rwxr-xr-x
sha512sum
58.41
KB
-rwxr-xr-x
shar
137.28
KB
-rwxr-xr-x
shasum
9.75
KB
-rwxr-xr-x
shcomp
1.35
MB
-rwxr-xr-x
shcomp93
1.35
MB
-rwxr-xr-x
showconsolefont
18.23
KB
-rwxr-xr-x
showkey
18.23
KB
-rwxr-xr-x
showtable
29.66
KB
-rwxr-xr-x
shred
50.51
KB
-rwxr-xr-x
shuf
46.51
KB
-rwxr-xr-x
sieve
32.05
KB
-rwxr-xr-x
simpdftex
21.57
KB
-rwxr-xr-x
sirtopnm
14.02
KB
-rwxr-xr-x
size
30.45
KB
-rwxr-xr-x
skill
30.23
KB
-rwxr-xr-x
slabtop
22.23
KB
-rwxr-xr-x
sldtoppm
18.09
KB
-rwxr-xr-x
sleep
34.51
KB
-rwxr-xr-x
slogin
827.04
KB
-rwxr-xr-x
slrn
466.3
KB
-rwxr-xr-x
slsh
39.75
KB
-rwxr-xr-x
smime_keys
30.31
KB
-rwxr-xr-x
snice
30.23
KB
-rwxr-xr-x
snmp-bridge-mib
29.96
KB
-rwxr-xr-x
snmpbulkget
14.3
KB
-rwxr-xr-x
snmpbulkwalk
14.3
KB
-rwxr-xr-x
snmpcheck
32.91
KB
-rwxr-xr-x
snmpconf
25.44
KB
-rwxr-xr-x
snmpdelta
22.4
KB
-rwxr-xr-x
snmpdf
18.3
KB
-rwxr-xr-x
snmpget
14.3
KB
-rwxr-xr-x
snmpgetnext
14.3
KB
-rwxr-xr-x
snmpinform
14.57
KB
-rwxr-xr-x
snmpnetstat
68.29
KB
-rwxr-xr-x
snmpping
22.3
KB
-rwxr-xr-x
snmpset
14.3
KB
-rwxr-xr-x
snmpstatus
15.13
KB
-rwxr-xr-x
snmptable
26.33
KB
-rwxr-xr-x
snmptest
22.3
KB
-rwxr-xr-x
snmptls
18.3
KB
-rwxr-xr-x
snmptranslate
22.3
KB
-rwxr-xr-x
snmptrap
14.57
KB
-rwxr-xr-x
snmpusm
42.51
KB
-rwxr-xr-x
snmpvacm
31.39
KB
-rwxr-xr-x
snmpwalk
18.3
KB
-rwxr-xr-x
socat
383.62
KB
-rwxr-xr-x
socklist
3.32
KB
-rwxr-xr-x
soelim
30.48
KB
-rwxr-xr-x
softlimit
22.02
KB
-rwxr-xr-x
solterm
26.23
KB
-rwxr-xr-x
sort
98.8
KB
-rwxr-xr-x
sort-dctrl
34.64
KB
-rwxr-xr-x
sos
612
B
-rwxr-xr-x
sos-collector
1.04
KB
-rwxr-xr-x
sosreport
1.03
KB
-rwxr-xr-x
spctoppm
14.02
KB
-rwxr-xr-x
sphinx-apidoc
967
B
-rwxr-xr-x
sphinx-autogen
969
B
-rwxr-xr-x
sphinx-build
965
B
-rwxr-xr-x
sphinx-quickstart
975
B
-rwxr-xr-x
splain
18.96
KB
-rwxr-xr-x
split
50.97
KB
-rwxr-xr-x
splitdiff
3.38
KB
-rwxr-xr-x
splitfont
14.15
KB
-rwxr-xr-x
spring
539
B
-rwxr-xr-x
sprockets
2.08
KB
-rwxr-xr-x
sputoppm
14.02
KB
-rwxr-xr-x
sqlite
35.41
KB
-rwxr-xr-x
sqlite3
1.56
MB
-rwxr-xr-x
ss
125.07
KB
-rwxr-xr-x
ssh
827.04
KB
-rwxr-xr-x
ssh-add
166.42
KB
-rwxr-xr-x
ssh-agent
286.43
KB
-rwxr-sr-x
ssh-argv0
1.42
KB
-rwxr-xr-x
ssh-copy-id
12.38
KB
-rwxr-xr-x
ssh-import-id
985
B
-rwxr-xr-x
ssh-import-id-gh
785
B
-rwxr-xr-x
ssh-import-id-lp
785
B
-rwxr-xr-x
ssh-keygen
446.44
KB
-rwxr-xr-x
ssh-keyscan
190.44
KB
-rwxr-xr-x
st4topgm
14.02
KB
-rwxr-xr-x
stat
78.52
KB
-rwxr-xr-x
static-sh
2.09
MB
-rwxr-xr-x
stdbuf
42.51
KB
-rwxr-xr-x
strace
1.88
MB
-rwxr-xr-x
strace-log-merge
1.78
KB
-rwxr-xr-x
stream
14.15
KB
-rwxr-xr-x
stream-im6
14.15
KB
-rwxr-xr-x
stream-im6.q16
14.15
KB
-rwxr-xr-x
streamzip
7.75
KB
-rwxr-xr-x
strfile
18.15
KB
-rwxr-xr-x
strings
30.61
KB
-rwxr-xr-x
strip
162.57
KB
-rwxr-xr-x
stty
74.51
KB
-rwxr-xr-x
stubmaker
3.34
KB
-rwxr-xr-x
stunnel
219.96
KB
-rwxr-xr-x
stunnel3
2.72
KB
-rwxr-xr-x
stunnel4
219.96
KB
-rwxr-xr-x
su
54.38
KB
-rwsr-xr-x
sudo
226.97
KB
-rwsr-xr-x
sudoedit
226.97
KB
-rwsr-xr-x
sudoreplay
87.64
KB
-rwxr-xr-x
sum
34.41
KB
-rwxr-xr-x
supervise
26.07
KB
-rwxr-xr-x
suspicious-source
5.39
KB
-rwxr-xr-x
sv
26.38
KB
-rwxr-xr-x
svc
22.04
KB
-rwxr-xr-x
svlogd
46.38
KB
-rwxr-xr-x
svn
442.44
KB
-rwxr-xr-x
svn-backup-dumps
23.93
KB
-rwxr-xr-x
svn-bisect
4.31
KB
-rwxr-xr-x
svn-clean
6.43
KB
-rwxr-xr-x
svn-hot-backup
11.46
KB
-rwxr-xr-x
svn-mergeinfo-normalizer
82.38
KB
-rwxr-xr-x
svn-populate-node-origins-inde...
14.3
KB
-rwxr-xr-x
svn-vendor
46.9
KB
-rwxr-xr-x
svn_apply_autoprops
5.41
KB
-rwxr-xr-x
svn_load_dirs
65.8
KB
-rwxr-xr-x
svnadmin
134.38
KB
-rwxr-xr-x
svnauthz
34.38
KB
-rwxr-xr-x
svnauthz-validate
34.38
KB
-rwxr-xr-x
svnbench
74.38
KB
-rwxr-xr-x
svndiff
807
B
-rwxr-xr-x
svndiffview
814
B
-rwxr-xr-x
svndumpfilter
42.48
KB
-rwxr-xr-x
svnfsfs
42.38
KB
-rwxr-xr-x
svnlook
90.38
KB
-rwxr-xr-x
svnmucc
34.38
KB
-rwxr-xr-x
svnpath
2.4
KB
-rwxr-xr-x
svnraisetreeconflict
18.38
KB
-rwxr-xr-x
svnrdump
54.38
KB
-rwxr-xr-x
svnserve
110.44
KB
-rwxr-xr-x
svnsync
66.38
KB
-rwxr-xr-x
svnversion
14.38
KB
-rwxr-xr-x
svnwrap
894
B
-rwxr-xr-x
svok
13.98
KB
-rwxr-xr-x
svscan
21.98
KB
-rwxr-xr-x
svscanboot
743
B
-rwxr-xr-x
svstat
22.04
KB
-rwxr-xr-x
swig
1.88
MB
-rwxr-xr-x
swig4.0
1.88
MB
-rwxr-xr-x
sync
34.41
KB
-rwxr-xr-x
synctex
34.3
KB
-rwxr-xr-x
systemctl
1.06
MB
-rwxr-xr-x
systemd
1.76
MB
-rwxr-xr-x
systemd-analyze
1.73
MB
-rwxr-xr-x
systemd-ask-password
18.48
KB
-rwxr-xr-x
systemd-cat
18.38
KB
-rwxr-xr-x
systemd-cgls
22.48
KB
-rwxr-xr-x
systemd-cgtop
38.39
KB
-rwxr-xr-x
systemd-cryptenroll
50.53
KB
-rwxr-xr-x
systemd-delta
26.37
KB
-rwxr-xr-x
systemd-detect-virt
18.37
KB
-rwxr-xr-x
systemd-escape
22.37
KB
-rwxr-xr-x
systemd-hwdb
118.66
KB
-rwxr-xr-x
systemd-id128
26.37
KB
-rwxr-xr-x
systemd-inhibit
22.39
KB
-rwxr-xr-x
systemd-machine-id-setup
18.48
KB
-rwxr-xr-x
systemd-mount
50.59
KB
-rwxr-xr-x
systemd-notify
22.38
KB
-rwxr-xr-x
systemd-path
18.37
KB
-rwxr-xr-x
systemd-run
62.57
KB
-rwxr-xr-x
systemd-socket-activate
26.37
KB
-rwxr-xr-x
systemd-stdio-bridge
22.38
KB
-rwxr-xr-x
systemd-sysext
46.49
KB
-rwxr-xr-x
systemd-sysusers
62.68
KB
-rwxr-xr-x
systemd-tmpfiles
98.57
KB
-rwxr-xr-x
systemd-tty-ask-password-agent
34.37
KB
-rwxr-xr-x
systemd-umount
50.59
KB
-rwxr-xr-x
t1ascii
38.52
KB
-rwxr-xr-x
t1asm
39.55
KB
-rwxr-xr-x
t1binary
38.51
KB
-rwxr-xr-x
t1disasm
42.47
KB
-rwxr-xr-x
t1mac
46.6
KB
-rwxr-xr-x
t1unmac
38.67
KB
-rwxr-xr-x
t4ht
34.38
KB
-rwxr-xr-x
tabs
18.3
KB
-rwxr-xr-x
tac
98.41
KB
-rwxr-xr-x
tagpending
12.06
KB
-rwxr-xr-x
tai64n
14.02
KB
-rwxr-xr-x
tai64nlocal
14.08
KB
-rwxr-xr-x
tail
66.52
KB
-rwxr-xr-x
tangle
46.47
KB
-rwxr-xr-x
tapestat
26.44
KB
-rwxr-xr-x
tar
505.81
KB
-rwxr-xr-x
tasksel
26.82
KB
-rwxr-xr-x
taskset
22.38
KB
-rwxr-xr-x
tbl
126.48
KB
-rwxr-xr-x
tbl-dctrl
38.73
KB
-rwxr-xr-x
tclsh
14.15
KB
-rwxr-xr-x
tclsh8.6
14.15
KB
-rwxr-xr-x
tcpdump
1.27
MB
-rwxr-xr-x
tcpspray.ndisc6
22.38
KB
-rwxr-xr-x
tcpspray6
56
B
-rwxr-xr-x
tcptraceroute6
14.38
KB
-rwxr-xr-x
tcsh
425.4
KB
-rwxr-xr-x
tee
34.51
KB
-rwxr-xr-x
telnet
107.56
KB
-rwxr-xr-x
telnet.netkit
107.56
KB
-rwxr-xr-x
tempfile
14.02
KB
-rwxr-xr-x
test
42.44
KB
-rwxr-xr-x
tex
399.97
KB
-rwxr-xr-x
tex2aspc
18.42
KB
-rwxr-xr-x
tex4ht
102.44
KB
-rwxr-xr-x
texdoc
1.35
KB
-rwxr-xr-x
texdoctk
60.77
KB
-rwxr-xr-x
texhash
8.03
KB
-rwxr-xr-x
texlua
6.64
MB
-rwxr-xr-x
texluac
6.64
MB
-rwxr-xr-x
texluajit
6.54
MB
-rwxr-xr-x
texluajitc
6.54
MB
-rwxr-xr-x
tfmtodit
42.6
KB
-rwxr-xr-x
tftopl
38.41
KB
-rwxr-xr-x
tgatoppm
18.02
KB
-rwxr-xr-x
thinkjettopbm
22.03
KB
-rwxr-xr-x
thor
510
B
-rwxr-xr-x
tic
86.41
KB
-rwxr-xr-x
tidy
42.23
KB
-rwxr-xr-x
tie
18.3
KB
-rwxr-xr-x
tifftopnm
26.02
KB
-rwxr-xr-x
tilt
3.38
KB
-rwxr-xr-x
time
26.52
KB
-rwxr-xr-x
timed-read
306
B
-rwxr-xr-x
timed-run
280
B
-rwxr-xr-x
timedatectl
46.37
KB
-rwxr-xr-x
timeout
38.95
KB
-rwxr-xr-x
tin
1
MB
-rwxr-xr-x
tknewsbiff
11.24
KB
-rwxr-xr-x
tkpasswd
16.3
KB
-rwxr-xr-x
tl-paper
4.46
KB
-rwxr-xr-x
tlmgr
339.11
KB
-rwxr-xr-x
tload
18.24
KB
-rwxr-xr-x
tmux
948.55
KB
-rwxr-xr-x
tnameserv
14.38
KB
-rwxr-xr-x
tnftp
178.9
KB
-rwxr-xr-x
todos
18.17
KB
-rwxr-xr-x
toe
22.3
KB
-rwxr-xr-x
toilet
26.68
KB
-rwxr-xr-x
top
130.06
KB
-rwxr-xr-x
touch
90.51
KB
-rwxr-xr-x
tpage
8.86
KB
-rwxr-xr-x
tpic2pdftex
12.29
KB
-rwxr-xr-x
tput
26.34
KB
-rwxr-xr-x
tr
46.51
KB
-rwxr-xr-x
trac-admin
955
B
-rwxr-xr-x
tracd
945
B
-rwxr-xr-x
tracepath
18.15
KB
-rwxr-xr-x
traceproto
2.82
KB
-rwxr-xr-x
traceproto.db
2.82
KB
-rwxr-xr-x
traceroute
67.16
KB
-rwxr-xr-x
traceroute-nanog
1.58
KB
-rwxr-xr-x
traceroute.db
67.16
KB
-rwxr-xr-x
traceroute6
34.45
KB
-rwsr-xr-x
traceroute6.db
67.16
KB
-rwxr-xr-x
tracert6
54
B
-rwxr-xr-x
transform-fdt
1.13
KB
-rwxr-xr-x
transition-check
6.35
KB
-rwxr-xr-x
tree
79.38
KB
-rwxr-xr-x
troff
718.61
KB
-rwxr-xr-x
true
26.3
KB
-rwxr-xr-x
truncate
34.51
KB
-rwxr-xr-x
tryaffix
4.8
KB
-rwxr-xr-x
tset
26.31
KB
-rwxr-xr-x
tsort
46.51
KB
-rwxr-xr-x
ttf2afm
46.4
KB
-rwxr-xr-x
ttf2pk
88.22
KB
-rwxr-xr-x
ttf2tfm
138.38
KB
-rwxr-xr-x
ttfdump
103.5
KB
-rwxr-xr-x
ttree
38.23
KB
-rwxr-xr-x
tty
30.51
KB
-rwxr-xr-x
typeprof3.0
554
B
-rwxr-xr-x
tzselect
15.02
KB
-rwxr-xr-x
ua
1003
B
-rwxr-xr-x
ubuntu-advantage
1003
B
-rwxr-xr-x
ubuntu-bug
2.51
KB
-rwxr-xr-x
ubuntu-distro-info
22.89
KB
-rwxr-xr-x
ubuntu-security-status
22.25
KB
-rwxr-xr-x
ucf
40.9
KB
-rwxr-xr-x
ucfq
18.91
KB
-rwxr-xr-x
ucfr
10.47
KB
-rwxr-xr-x
uclampset
26.38
KB
-rwxr-xr-x
uconv
54.83
KB
-rwxr-xr-x
udevadm
1.08
MB
-rwxr-xr-x
ujconv
4.59
KB
-rwxr-xr-x
ujguess
3.59
KB
-rwxr-xr-x
ul
22.38
KB
-rwxr-xr-x
umap
6.52
KB
-rwxr-xr-x
umount
34.38
KB
-rwsr-xr-x
uname
34.51
KB
-rwxr-xr-x
unattended-upgrade
97.21
KB
-rwxr-xr-x
unattended-upgrades
97.21
KB
-rwxr-xr-x
unbuffer
643
B
-rwxr-xr-x
uncompress
2.29
KB
-rwxr-xr-x
unexpand
34.53
KB
-rwxr-xr-x
unicode_start
2.7
KB
-rwxr-xr-x
unicode_stop
530
B
-rwxr-xr-x
uniq
42.51
KB
-rwxr-xr-x
unix2dos
54.34
KB
-rwxr-xr-x
unix2mac
54.34
KB
-rwxr-xr-x
unlink
30.51
KB
-rwxr-xr-x
unlzma
82.52
KB
-rwxr-xr-x
unmkinitramfs
3.69
KB
-rwxr-xr-x
unpack200
109.12
KB
-rwxr-xr-x
unrtf
90.17
KB
-rwxr-xr-x
unshar
80.78
KB
-rwxr-xr-x
unshare
30.6
KB
-rwxr-xr-x
unstr
14.15
KB
-rwxr-xr-x
unwrapdiff
5.8
KB
-rwxr-xr-x
unxz
82.52
KB
-rwxr-xr-x
unzip
170.42
KB
-rwxr-xr-x
unzipsfx
78.42
KB
-rwxr-xr-x
unzstd
854.59
KB
-rwxr-xr-x
upbibtex
117.05
KB
-rwxr-xr-x
update-alternatives
58.24
KB
-rwxr-xr-x
update-leap
11.73
KB
-rwxr-xr-x
update-mime-database
58.23
KB
-rwxr-xr-x
update-perl-sax-parsers
6.03
KB
-rwxr-xr-x
update_rubygems
593
B
-rwxr-xr-x
updmap
86.25
KB
-rwxr-xr-x
updmap-sys
925
B
-rwxr-xr-x
updmap-user
922
B
-rwxr-xr-x
updvitomp
808.04
KB
-rwxr-xr-x
updvitype
58.43
KB
-rwxr-xr-x
upmendex
134.98
KB
-rwxr-xr-x
upmpost
808.04
KB
-rwxr-xr-x
upower
22.3
KB
-rwxr-xr-x
uppltotf
62.39
KB
-rwxr-xr-x
uptex
466.8
KB
-rwxr-xr-x
uptftopl
50.41
KB
-rwxr-xr-x
uptime
14.23
KB
-rwxr-xr-x
usb-devices
4.33
KB
-rwxr-xr-x
usbhid-dump
30.38
KB
-rwxr-xr-x
usbreset
14.3
KB
-rwxr-xr-x
uscan
74.67
KB
-rwxr-xr-x
users
34.51
KB
-rwxr-xr-x
utmpdump
22.38
KB
-rwxr-xr-x
uudecode
84.34
KB
-rwxr-xr-x
uuencode
80.34
KB
-rwxr-xr-x
uuidgen
18.38
KB
-rwxr-xr-x
uuidparse
22.38
KB
-rwxr-xr-x
uupdate
37.36
KB
-rwxr-xr-x
vacuumdb
9.21
KB
-rwxr-xr-x
vacuumlo
9.21
KB
-rwxr-xr-x
vcs-run
6.75
KB
-rwxr-xr-x
vdir
134.98
KB
-rwxr-xr-x
vector
123.5
MB
-rwxr-xr-x
vftovp
54.41
KB
-rwxr-xr-x
vi
3.61
MB
-rwxr-xr-x
view
3.61
MB
-rwxr-xr-x
viewres
31.23
KB
-rwxr-xr-x
vigpg
2.58
KB
-rwxr-xr-x
vim
3.61
MB
-rwxr-xr-x
vim.basic
3.61
MB
-rwxr-xr-x
vim.tiny
1.45
MB
-rwxr-xr-x
vimdiff
3.61
MB
-rwxr-xr-x
vimtutor
2.1
KB
-rwxr-xr-x
virtualenv
239
B
-rwxr-xr-x
vlna
18.45
KB
-rwxr-xr-x
vm-support
9.83
KB
-rwxr-xr-x
vmhgfs-fuse
46.73
KB
-rwxr-xr-x
vmstat
38.24
KB
-rwxr-xr-x
vmtoolsd
74.56
KB
-rwxr-xr-x
vmware-alias-import
42.52
KB
-rwxr-xr-x
vmware-checkvm
14.38
KB
-rwxr-xr-x
vmware-hgfsclient
14.38
KB
-rwxr-xr-x
vmware-namespace-cmd
22.3
KB
-rwxr-xr-x
vmware-rpctool
18.3
KB
-rwxr-xr-x
vmware-toolbox-cmd
58.59
KB
-rwxr-xr-x
vmware-vgauth-cmd
18.3
KB
-rwxr-xr-x
vmware-vmblock-fuse
18.78
KB
-rwxr-xr-x
vmware-xferlogs
32.33
KB
-rwxr-xr-x
vptovf
62.39
KB
-rwxr-xr-x
w
22.23
KB
-rwxr-xr-x
w3m
1.44
MB
-rwxr-xr-x
w3mman
1.24
KB
-rwxr-xr-x
wall
22.38
KB
-rwxr-xr-x
watch
26.6
KB
-rwxr-xr-x
watchgnupg
18.3
KB
-rwxr-xr-x
wbmptopbm
14.02
KB
-rwxr-xr-x
wc
42.42
KB
-rwxr-xr-x
wdctl
30.4
KB
-rwxr-xr-x
wdiff
34.23
KB
-rwxr-xr-x
weave
62.39
KB
-rwxr-xr-x
webpack
4.16
KB
-rwxr-xr-x
webpng
14.15
KB
-rwxr-xr-x
wget
459.02
KB
-rwxr-xr-x
what-patch
3.36
KB
-rwxr-xr-x
whatis
47.28
KB
-rwxr-xr-x
whereis
30.84
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
which.debianutils
946
B
-rwxr-xr-x
whiptail
30.16
KB
-rwxr-xr-x
who
50.52
KB
-rwxr-xr-x
who-permits-upload
9.68
KB
-rwxr-xr-x
who-uploads
8.22
KB
-rwxr-xr-x
whoami
30.51
KB
-rwxr-xr-x
whodepends
1.54
KB
-rwxr-xr-x
whois
155.66
KB
-rwxr-xr-x
whowatch
50.91
KB
-rwxr-xr-x
wifi-status
2.06
KB
-rwxr-xr-x
winicontoppm
22.02
KB
-rwxr-xr-x
wkhtmltoimage
254.55
KB
-rwxr-xr-x
wkhtmltopdf
334.55
KB
-rwxr-xr-x
wnpp-alert
4.91
KB
-rwxr-xr-x
wnpp-check
3
KB
-rwxr-xr-x
wofm2opl
50.41
KB
-rwxr-xr-x
wopl2ofm
114.38
KB
-rwxr-xr-x
word-list-compress
14.3
KB
-rwxr-xr-x
wovf2ovp
66.41
KB
-rwxr-xr-x
wovp2ovf
130.39
KB
-rwxr-xr-x
wp
1.6
KB
-rwxr-xr-x
wrap-and-sort
11.5
KB
-rwxr-xr-x
write
22.38
KB
-rwxr-xr-x
write.ul
22.38
KB
-rwxr-xr-x
wrjpgcom
14.14
KB
-rwxr-xr-x
wsgen
14.32
KB
-rwxr-xr-x
wsimport
14.32
KB
-rwxr-xr-x
www-browser
2.22
MB
-rwxr-xr-x
x86_64
26.65
KB
-rwxr-xr-x
x86_64-linux-gnu-addr2line
26.7
KB
-rwxr-xr-x
x86_64-linux-gnu-ar
54.48
KB
-rwxr-xr-x
x86_64-linux-gnu-as
456.4
KB
-rwxr-xr-x
x86_64-linux-gnu-c++filt
22.27
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp-11
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp-12
1.32
MB
-rwxr-xr-x
x86_64-linux-gnu-dwp
1.82
MB
-rwxr-xr-x
x86_64-linux-gnu-elfedit
34.72
KB
-rwxr-xr-x
x86_64-linux-gnu-g++
910.82
KB
-rwxr-xr-x
x86_64-linux-gnu-g++-11
910.82
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-11
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-12
1.32
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-11
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-12
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-11
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-12
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-11
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-12
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov
400.01
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-11
400.01
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-12
736.26
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump
251.84
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-11
251.84
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-12
576.13
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool
275.93
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-11
275.93
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-12
600.22
KB
-rwxr-xr-x
x86_64-linux-gnu-gold
3.04
MB
-rwxr-xr-x
x86_64-linux-gnu-gprof
111.79
KB
-rwxr-xr-x
x86_64-linux-gnu-ld
1.66
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.bfd
1.66
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.gold
3.04
MB
-rwxr-xr-x
x86_64-linux-gnu-lto-dump-11
23.73
MB
-rwxr-xr-x
x86_64-linux-gnu-lto-dump-12
31.05
MB
-rwxr-xr-x
x86_64-linux-gnu-nm
43.63
KB
-rwxr-xr-x
x86_64-linux-gnu-objcopy
162.54
KB
-rwxr-xr-x
x86_64-linux-gnu-objdump
365.13
KB
-rwxr-xr-x
x86_64-linux-gnu-pkg-config
2.18
KB
-rwxr-xr-x
x86_64-linux-gnu-python3-confi...
3.05
KB
-rwxr-xr-x
x86_64-linux-gnu-python3.10-co...
3.05
KB
-rwxr-xr-x
x86_64-linux-gnu-ranlib
54.48
KB
-rwxr-xr-x
x86_64-linux-gnu-readelf
758.44
KB
-rwxr-xr-x
x86_64-linux-gnu-size
30.45
KB
-rwxr-xr-x
x86_64-linux-gnu-strings
30.61
KB
-rwxr-xr-x
x86_64-linux-gnu-strip
162.57
KB
-rwxr-xr-x
x86_64-pc-linux-gnu-pkg-config
50.28
KB
-rwxr-xr-x
xargs
62.41
KB
-rwxr-xr-x
xauth
54.96
KB
-rwxr-xr-x
xbmtopbm
14.02
KB
-rwxr-xr-x
xdg-desktop-icon
20.16
KB
-rwxr-xr-x
xdg-desktop-menu
42.27
KB
-rwxr-xr-x
xdg-email
26.3
KB
-rwxr-xr-x
xdg-icon-resource
29.33
KB
-rwxr-xr-x
xdg-mime
41.14
KB
-rwxr-xr-x
xdg-open
25.46
KB
-rwxr-xr-x
xdg-screensaver
37.11
KB
-rwxr-xr-x
xdg-settings
37.52
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
26.23
KB
-rwxr-xr-x
xdpyinfo
39.05
KB
-rwxr-xr-x
xdriinfo
14.3
KB
-rwxr-xr-x
xdvi
2.96
KB
-rwxr-xr-x
xdvi-xaw
749.48
KB
-rwxr-xr-x
xdvi.bin
749.48
KB
-rwxr-xr-x
xdvipdfmx
835.77
KB
-rwxr-xr-x
xetex
708.38
KB
-rwxr-xr-x
xev
34.63
KB
-rwxr-xr-x
xfd
40.01
KB
-rwxr-xr-x
xfontsel
43.85
KB
-rwxr-xr-x
xgettext
297.01
KB
-rwxr-xr-x
xgettext.pl
6.41
KB
-rwxr-xr-x
ximtoppm
14.02
KB
-rwxr-xr-x
xjc
14.32
KB
-rwxr-xr-x
xkbbell
14.32
KB
-rwxr-xr-x
xkbcomp
212.1
KB
-rwxr-xr-x
xkbevd
42.38
KB
-rwxr-xr-x
xkbprint
90.34
KB
-rwxr-xr-x
xkbvleds
23.1
KB
-rwxr-xr-x
xkbwatch
23.16
KB
-rwxr-xr-x
xkibitz
4.75
KB
-rwxr-xr-x
xkill
14.3
KB
-rwxr-xr-x
xlsatoms
14.3
KB
-rwxr-xr-x
xlsclients
18.31
KB
-rwxr-xr-x
xlsfonts
26.4
KB
-rwxr-xr-x
xmessage
23.12
KB
-rwxr-xr-x
xml2-config
1.4
KB
-rwxr-xr-x
xml2pmx
126.4
KB
-rwxr-xr-x
xpath
4.74
KB
-rwxr-xr-x
xpmtoppm
18.08
KB
-rwxr-xr-x
xprop
48.61
KB
-rwxr-xr-x
xpstat
6.59
KB
-rwxr-xr-x
xslt-config
2.1
KB
-rwxr-xr-x
xsltproc
30.15
KB
-rwxr-xr-x
xsubpp
5.05
KB
-rwxr-xr-x
xtotroff
90.44
KB
-rwxr-xr-x
xvinfo
18.3
KB
-rwxr-xr-x
xvminitoppm
14.02
KB
-rwxr-xr-x
xwdtopnm
22.02
KB
-rwxr-xr-x
xwininfo
50.38
KB
-rwxr-xr-x
xxd
18.28
KB
-rwxr-xr-x
xz
82.52
KB
-rwxr-xr-x
xzcat
82.52
KB
-rwxr-xr-x
xzcmp
6.86
KB
-rwxr-xr-x
xzdiff
6.86
KB
-rwxr-xr-x
xzegrep
5.87
KB
-rwxr-xr-x
xzfgrep
5.87
KB
-rwxr-xr-x
xzgrep
5.87
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
y2racc
7.35
KB
-rwxr-xr-x
yacc
4.12
KB
-rwxr-xr-x
yahooquote
2.13
KB
-rwxr-xr-x
ybmtopbm
14.02
KB
-rwxr-xr-x
yes
30.38
KB
-rwxr-xr-x
ypdomainname
22.23
KB
-rwxr-xr-x
yuvsplittoppm
14.02
KB
-rwxr-xr-x
yuvtoppm
14.02
KB
-rwxr-xr-x
zabbix_get
171.84
KB
-rwxr-xr-x
zabbix_sender
329.63
KB
-rwxr-xr-x
zcat
1.94
KB
-rwxr-xr-x
zcmp
1.64
KB
-rwxr-xr-x
zdiff
5.76
KB
-rwxr-xr-x
zdump
26.21
KB
-rwxr-xr-x
zegrep
29
B
-rwxr-xr-x
zeisstopnm
14.02
KB
-rwxr-xr-x
zfgrep
29
B
-rwxr-xr-x
zforce
2.03
KB
-rwxr-xr-x
zgrep
7.91
KB
-rwxr-xr-x
zip
198.99
KB
-rwxr-xr-x
zipcloak
70.4
KB
-rwxr-xr-x
zipdetails
58.66
KB
-rwxr-xr-x
zipgrep
2.89
KB
-rwxr-xr-x
zipinfo
170.42
KB
-rwxr-xr-x
zipnote
62.4
KB
-rwxr-xr-x
zipsplit
58.4
KB
-rwxr-xr-x
zless
2.15
KB
-rwxr-xr-x
zmore
1.8
KB
-rwxr-xr-x
znew
4.47
KB
-rwxr-xr-x
zsh
989.58
KB
-rwxr-xr-x
zsh5
852
B
-rwxr-xr-x
zstd
854.59
KB
-rwxr-xr-x
zstdcat
854.59
KB
-rwxr-xr-x
zstdgrep
3.78
KB
-rwxr-xr-x
zstdless
30
B
-rwxr-xr-x
zstdmt
854.59
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : gropdf
#!/usr/bin/perl -w # # gropdf : PDF post processor for groff # # Copyright (C) 2011-2018 Free Software Foundation, Inc. # Written by Deri James <deri@chuzzlewit.myzen.co.uk> # # This file is part of groff. # # groff is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation, either version 3 of the License, or # (at your option) any later version. # # groff is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. use strict; use Getopt::Long qw(:config bundling); use constant { WIDTH => 0, CHRCODE => 1, PSNAME => 2, ASSIGNED => 3, USED => 4, }; my $gotzlib=0; my $rc = eval { require Compress::Zlib; Compress::Zlib->import(); 1; }; if($rc) { $gotzlib=1; } else { Msg(0,"Perl module Compress::Zlib not available - cannot compress this pdf"); } my %cfg; $cfg{GROFF_VERSION}='1.22.4'; $cfg{GROFF_FONT_PATH}='/usr/share/groff/site-font:/usr/share/groff/1.22.4/font:/usr/lib/font'; $cfg{RT_SEP}=':'; binmode(STDOUT); my @obj; # Array of PDF objects my $objct=0; # Count of Objects my $fct=0; # Output count my %fnt; # Used fonts our $input; # Current input filehandle my $lct=0; # Input Line Count my $src_name=''; my %env; # Current environment my %fontlst; # Fonts Loaded my $rot=0; # Portrait my %desc; # Contents of DESC my %download; # Contents of downlopad file my $pages; # Pointer to /Pages object my $devnm='devpdf'; my $cpage; # Pointer to current pages my $cpageno=0; # Object no of current page my $cat; # Pointer to catalogue my $dests; # Pointer to Dests my @mediabox=(0,0,595,842); my @defaultmb=(0,0,595,842); my $stream=''; # Current Text/Graphics stream my $cftsz=10; # Current font sz my $cft; # Current Font my $lwidth=1; # current linewidth my $linecap=1; my $linejoin=1; my $textcol=''; # Current groff text my $fillcol=''; # Current groff fill my $curfill=''; # Current PDF fill my $strkcol=''; my $curstrk=''; my @lin=(); # Array holding current line of text my @ahead=(); # Buffer used to hol the next line my $mode='g'; # Graphic (g) or Text (t) mode; my $xpos=0; # Current X position my $ypos=0; # Current Y position my $tmxpos=0; my $kernadjust=0; my $curkern=0; my $widtbl; # Pointer to width table for current font size my $origwidtbl; # Pointer to width table my $krntbl; # Pointer to kern table my $matrix="1 0 0 1"; my $whtsz; # Current width of a space my $poschg=0; # V/H pending my $fontchg=0; # font change pending my $tnum=2; # flatness of B-Spline curve my $tden=3; # flatness of B-Spline curve my $linewidth=40; my $w_flg=0; my $nomove=0; my $pendmv=0; my $gotT=0; my $suppress=0; # Suppress processing? my %incfil; # Included Files my @outlev=([0,undef,0,0]); # Structure pdfmark /OUT entries my $curoutlev=\@outlev; my $curoutlevno=0; # Growth point for @curoutlev my $Foundry=''; my $xrev=0; # Reverse x direction of font my $matrixchg=0; my $wt=-1; my $thislev=1; my $mark=undef; my $suspendmark=undef; my $n_flg=1; my $pginsert=-1; # Growth point for kids array my %pgnames; # 'names' of pages for switchtopage my @outlines=(); # State of Bookmark Outlines at end of each page my $custompaper=0; # Has there been an X papersize my $textenccmap=''; # CMap for groff text.enc encoding my @XOstream=(); my @PageAnnots={}; my $noslide=0; my $transition={PAGE => {Type => '/Trans', S => '', D => 1, Dm => '/H', M => '/I', Di => 0, SS => 1.0, B => 0}, BLOCK => {Type => '/Trans', S => '', D => 1, Dm => '/H', M => '/I', Di => 0, SS => 1.0, B => 0}}; my $firstpause=0; my $present=0; $noslide=1 if exists($ENV{GROPDF_NOSLIDE}) and $ENV{GROPDF_NOSLIDE}; my %ppsz=( 'ledger'=>[1224,792], 'legal'=>[612,1008], 'letter'=>[612,792], 'a0'=>[2384,3370], 'a1'=>[1684,2384], 'a2'=>[1191,1684], 'a3'=>[842,1191], 'a4'=>[595,842], 'a5'=>[420,595], 'a6'=>[297,420], 'a7'=>[210,297], 'a8'=>[148,210], 'a9'=>[105,148], 'a10'=>[73,105], 'isob0'=>[2835,4008], 'isob1'=>[2004,2835], 'isob2'=>[1417,2004], 'isob3'=>[1001,1417], 'isob4'=>[709,1001], 'isob5'=>[499,709], 'isob6'=>[354,499], 'c0'=>[2599,3677], 'c1'=>[1837,2599], 'c2'=>[1298,1837], 'c3'=>[918,1298], 'c4'=>[649,918], 'c5'=>[459,649], 'c6'=>[323,459] ); my $ucmap=<<'EOF'; /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def /CMapName /Adobe-Identity-UCS def /CMapType 2 def 1 begincodespacerange <0000> <FFFF> endcodespacerange 2 beginbfrange <008b> <008f> [<00660066> <00660069> <0066006c> <006600660069> <00660066006C>] <00ad> <00ad> <002d> endbfrange endcmap CMapName currentdict /CMap defineresource pop end end EOF my $fd; my $frot; my $fpsz; my $embedall=0; my $debug=0; my $version=0; my $stats=0; my $unicodemap; my @idirs; #Load_Config(); GetOptions("F=s" => \$fd, 'I=s' => \@idirs, 'l' => \$frot, 'p=s' => \$fpsz, 'd!' => \$debug, 'v' => \$version, 'version' => \$version, 'e' => \$embedall, 'y=s' => \$Foundry, 's' => \$stats, 'u:s' => \$unicodemap); unshift(@idirs,'.'); if ($version) { print "GNU gropdf (groff) version $cfg{GROFF_VERSION}\n"; exit; } if (defined($unicodemap)) { if ($unicodemap eq '') { $ucmap=''; } elsif (-r $unicodemap) { local $/; open(F,"<$unicodemap") or die "gropdf: Failed to open '$unicodemap'"; ($ucmap)=(<F>); close(F); } else { Msg(0,"Failed to find '$unicodemap' - ignoring"); } } # Search for 'font directory': paths in -f opt, shell var GROFF_FONT_PATH, default paths my $fontdir=$cfg{GROFF_FONT_PATH}; $fontdir=$ENV{GROFF_FONT_PATH}.$cfg{RT_SEP}.$fontdir if exists($ENV{GROFF_FONT_PATH}); $fontdir=$fd.$cfg{RT_SEP}.$fontdir if defined($fd); $rot=90 if $frot; $matrix="0 1 -1 0" if $frot; LoadDownload(); LoadDesc(); my $unitwidth=$desc{unitwidth}; my $papersz=$desc{papersize}; $papersz=lc($fpsz) if $fpsz; $env{FontHT}=0; $env{FontSlant}=0; MakeMatrix(); if (substr($papersz,0,1) eq '/' and -r $papersz) { if (open(P,"<$papersz")) { while (<P>) { chomp; s/# .*//; next if $_ eq ''; $papersz=$_; last } close(P); } } if ($papersz=~m/([\d.]+)([cipP]),([\d.]+)([cipP])/) { @defaultmb=@mediabox=(0,0,ToPoints($3,$4),ToPoints($1,$2)); } elsif (exists($ppsz{$papersz})) { @defaultmb=@mediabox=(0,0,$ppsz{$papersz}->[0],$ppsz{$papersz}->[1]); } my (@dt)=gmtime($ENV{SOURCE_DATE_EPOCH} || time); my $dt=PDFDate(\@dt); my %info=('Creator' => "(groff version $cfg{GROFF_VERSION})", 'Producer' => "(gropdf version $cfg{GROFF_VERSION})", 'ModDate' => "($dt)", 'CreationDate' => "($dt)"); unshift @ARGV, '-' unless @ARGV; foreach my $filename (@ARGV) { local $input; if ($filename eq '-') { $input = \*STDIN; } elsif (not open $input, '<', $filename) { warn $!; next; } while (<$input>) { chomp; s/\r$//; $lct++; do # The ahead buffer behaves like 'ungetc' {{ if (scalar(@ahead)) { $_=shift(@ahead); } my $cmd=substr($_,0,1); next if $cmd eq '#'; # just a comment my $lin=substr($_,1); while ($cmd eq 'w') { $cmd=substr($lin,0,1); $lin=substr($lin,1); $w_flg=1 if $gotT; } $lin=~s/^\s+//; # $lin=~s/\s#.*?$//; # remove comment $stream.="\% $_\n" if $debug; do_x($lin),next if ($cmd eq 'x'); next if $suppress; do_p($lin),next if ($cmd eq 'p'); do_f($lin),next if ($cmd eq 'f'); do_s($lin),next if ($cmd eq 's'); do_m($lin),next if ($cmd eq 'm'); do_D($lin),next if ($cmd eq 'D'); do_V($lin),next if ($cmd eq 'V'); do_v($lin),next if ($cmd eq 'v'); do_t($lin),next if ($cmd eq 't'); do_u($lin),next if ($cmd eq 'u'); do_C($lin),next if ($cmd eq 'C'); do_c($lin),next if ($cmd eq 'c'); do_N($lin),next if ($cmd eq 'N'); do_h($lin),next if ($cmd eq 'h'); do_H($lin),next if ($cmd eq 'H'); do_n($lin),next if ($cmd eq 'n'); my $tmp=scalar(@ahead); }} until scalar(@ahead) == 0; } } exit 0 if $lct==0; if ($cpageno > 0) { my $trans='BLOCK'; $trans='PAGE' if $firstpause; if (scalar(@XOstream)) { MakeXO() if $stream; $stream=join("\n",@XOstream)."\n"; } my %t=%{$transition->{$trans}}; $cpage->{MediaBox}=\@mediabox if $custompaper; $cpage->{Trans}=FixTrans(\%t) if $t{S}; if ($#PageAnnots >= 0) { @{$cpage->{Annots}}=@PageAnnots; } PutObj($cpageno); OutStream($cpageno+1); } $cat->{PageMode}='/FullScreen' if $present; PutOutlines(\@outlev); PutObj(1); my $info=BuildObj(++$objct,\%info); PutObj($objct); foreach my $fontno (sort keys %fontlst) { my $o=$fontlst{$fontno}->{FNT}; foreach my $ch (@{$o->{NO}}) { my $psname=$o->{NAM}->{$ch->[1]}->[PSNAME] || '/.notdef'; my $wid=$o->{NAM}->{$ch->[1]}->[WIDTH] || 0; push(@{$o->{DIFF}},$psname); push(@{$o->{WIDTH}},$wid); last if $#{$o->{DIFF}} >= 255; } unshift(@{$o->{DIFF}},0); my $p=GetObj($fontlst{$fontno}->{OBJ}); if (exists($p->{LastChar}) and $p->{LastChar} > 255) { $p->{LastChar} = 255; splice(@{$o->{DIFF}},256); splice(@{$o->{WIDTH}},256); } } foreach my $o (3..$objct) { PutObj($o) if (!exists($obj[$o]->{XREF})); } #my $encrypt=BuildObj(++$objct,{'Filter' => '/Standard', 'V' => 1, 'R' => 2, 'P' => 252}); #PutObj($objct); PutObj(2); my $xrefct=$fct; $objct+=1; print "xref\n0 $objct\n0000000000 65535 f \n"; foreach my $xr (@obj) { next if !defined($xr); printf("%010d 00000 n \n",$xr->{XREF}); } print "trailer\n<<\n/Info $info\n/Root 1 0 R\n/Size $objct\n>>\nstartxref\n$fct\n\%\%EOF\n"; print "\% Pages=$pages->{Count}\n" if $stats; sub MakeMatrix { my $fontxrev=shift||0; my @mat=($frot)?(0,1,-1,0):(1,0,0,1); if (!$frot) { if ($env{FontHT} != 0) { $mat[3]=sprintf('%.3f',$env{FontHT}/$cftsz); } if ($env{FontSlant} != 0) { my $slant=$env{FontSlant}; $slant*=$env{FontHT}/$cftsz if $env{FontHT} != 0; my $ang=rad($slant); $mat[2]=sprintf('%.3f',sin($ang)/cos($ang)); } if ($fontxrev) { $mat[0]=-$mat[0]; } } $matrix=join(' ',@mat); $matrixchg=1; } sub PutOutlines { my $o=shift; my $outlines; if ($#{$o} > 0) { # We've got Outlines to deal with my $openct=$curoutlev->[0]->[2]; while ($thislev-- > 1) { my $nxtoutlev=$curoutlev->[0]->[1]; $nxtoutlev->[0]->[2]+=$openct if $curoutlev->[0]->[3]==1; $openct=0 if $nxtoutlev->[0]->[3]==-1; $curoutlev=$nxtoutlev; } $cat->{Outlines}=BuildObj(++$objct,{'Count' => abs($o->[0]->[0])+$o->[0]->[2]}); $outlines=$obj[$objct]->{DATA}; } else { return; } SetOutObj($o); $outlines->{First}=$o->[1]->[2]; $outlines->{Last}=$o->[$#{$o}]->[2]; LinkOutObj($o,$cat->{Outlines}); } sub SetOutObj { my $o=shift; for my $j (1..$#{$o}) { my $ono=BuildObj(++$objct,$o->[$j]->[0]); $o->[$j]->[2]=$ono; SetOutObj($o->[$j]->[1]) if $#{$o->[$j]->[1]} > -1; } } sub LinkOutObj { my $o=shift; my $parent=shift; for my $j (1..$#{$o}) { my $op=GetObj($o->[$j]->[2]); $op->{Next}=$o->[$j+1]->[2] if ($j < $#{$o}); $op->{Prev}=$o->[$j-1]->[2] if ($j > 1); $op->{Parent}=$parent; if ($#{$o->[$j]->[1]} > -1) { $op->{Count}=$o->[$j]->[1]->[0]->[2]*$o->[$j]->[1]->[0]->[3];# if exists($op->{Count}) and $op->{Count} > 0; $op->{First}=$o->[$j]->[1]->[1]->[2]; $op->{Last}=$o->[$j]->[1]->[$#{$o->[$j]->[1]}]->[2]; LinkOutObj($o->[$j]->[1],$o->[$j]->[2]); } } } sub GetObj { my $ono=shift; ($ono)=split(' ',$ono); return($obj[$ono]->{DATA}); } sub PDFDate { my $dt=shift; return(sprintf("D:%04d%02d%02d%02d%02d%02d+00'00'",$dt->[5]+1900,$dt->[4]+1,$dt->[3],$dt->[2],$dt->[1],$dt->[0])); } sub ToPoints { my $num=shift; my $unit=shift; if ($unit eq 'i') { return($num*72); } elsif ($unit eq 'c') { return int($num*72/2.54); } elsif ($unit eq 'm') # millimetres { return int($num*72/25.4); } elsif ($unit eq 'p') { return($num); } elsif ($unit eq 'P') { return($num*6); } elsif ($unit eq 'z') { return($num/$unitwidth); } else { Msg(1,"Unknown scaling factor '$unit'"); } } sub Load_Config { open(CFG,"<gropdf_config") or die "Can't open config file: $!"; while (<CFG>) { chomp; my ($key,$val)=split(/ ?= ?/); $cfg{$key}=$val; } close(CFG); } sub LoadDownload { my $f; my $found=0; my (@dirs)=split($cfg{RT_SEP},$fontdir); foreach my $dir (@dirs) { $f=undef; OpenFile(\$f,$dir,"download"); next if !defined($f); $found++; while (<$f>) { chomp; s/#.*$//; next if $_ eq ''; my ($foundry,$name,$file)=split(/\t+/); if (substr($file,0,1) eq '*') { next if !$embedall; $file=substr($file,1); } $download{"$foundry $name"}=$file; } close($f); } Msg(1,"Failed to open 'download'") if !$found; } sub OpenFile { my $f=shift; my $dirs=shift; my $fnm=shift; if (substr($fnm,0,1) eq '/' or substr($fnm,1,1) eq ':') # dos { return if -r "$fnm" and open($$f,"<$fnm"); } my (@dirs)=split($cfg{RT_SEP},$dirs); foreach my $dir (@dirs) { last if -r "$dir/$devnm/$fnm" and open($$f,"<$dir/$devnm/$fnm"); } } sub LoadDesc { my $f; OpenFile(\$f,$fontdir,"DESC"); Msg(1,"Failed to open 'DESC'") if !defined($f); while (<$f>) { chomp; s/#.*$//; next if $_ eq ''; my ($name,$prms)=split(' ',$_,2); $desc{lc($name)}=$prms; } close($f); } sub rad { $_[0]*3.14159/180 } my $InPicRotate=0; sub do_x { my $l=shift; my ($xcmd,@xprm)=split(' ',$l); $xcmd=substr($xcmd,0,1); if ($xcmd eq 'T') { Msg(0,"Expecting a pdf pipe (got $xprm[0])") if $xprm[0] ne substr($devnm,3); } elsif ($xcmd eq 'f') # Register Font { $xprm[1]="${Foundry}-$xprm[1]" if $Foundry ne ''; LoadFont($xprm[0],$xprm[1]); } elsif ($xcmd eq 'F') # Source File (for errors) { $env{SourceFile}=$xprm[0]; } elsif ($xcmd eq 'H') # FontHT { $xprm[0]/=$unitwidth; $xprm[0]=0 if $xprm[0] == $cftsz; $env{FontHT}=$xprm[0]; MakeMatrix(); } elsif ($xcmd eq 'S') # FontSlant { $env{FontSlant}=$xprm[0]; MakeMatrix(); } elsif ($xcmd eq 'i') # Initialise { if ($objct == 0) { $objct++; @defaultmb=@mediabox; BuildObj($objct,{'Pages' => BuildObj($objct+1, {'Kids' => [], 'Count' => 0, 'Type' => '/Pages', 'Rotate' => $rot, 'MediaBox' => \@defaultmb, 'Resources' => {'Font' => {}, 'ProcSet' => ['/PDF', '/Text', '/ImageB', '/ImageC', '/ImageI']} } ), 'Type' => '/Catalog'}); $cat=$obj[$objct]->{DATA}; $objct++; $pages=$obj[2]->{DATA}; Put("%PDF-1.4\n\x25\xe2\xe3\xcf\xd3\n"); } } elsif ($xcmd eq 'X') { # There could be extended args do {{ LoadAhead(1); if (substr($ahead[0],0,1) eq '+') { $l.="\n".substr($ahead[0],1); shift(@ahead); } }} until $#ahead==0; ($xcmd,@xprm)=split(' ',$l); $xcmd=substr($xcmd,0,1); if ($xprm[0]=~m/^(.+:)(.+)/) { splice(@xprm,1,0,$2); $xprm[0]=$1; } my $par=join(' ',@xprm[1..$#xprm]); if ($xprm[0] eq 'ps:') { if ($xprm[1] eq 'invis') { $suppress=1; } elsif ($xprm[1] eq 'endinvis') { $suppress=0; } elsif ($par=~m/exec gsave currentpoint 2 copy translate (.+) rotate neg exch neg exch translate/) { # This is added by gpic to rotate a single object my $theta=-rad($1); IsGraphic(); my ($curangle,$hyp)=RtoP($xpos,GraphY($ypos)); my ($x,$y)=PtoR($theta+$curangle,$hyp); $stream.="q\n".sprintf("%.3f %.3f %.3f %.3f %.3f %.3f cm",cos($theta),sin($theta),-sin($theta),cos($theta),$xpos-$x,GraphY($ypos)-$y)."\n"; $InPicRotate=1; } elsif ($par=~m/exec grestore/ and $InPicRotate) { IsGraphic(); $stream.="Q\n"; $InPicRotate=0; } elsif ($par=~m/exec (\d) setlinejoin/) { IsGraphic(); $linejoin=$1; $stream.="$linejoin j\n"; } elsif ($par=~m/exec (\d) setlinecap/) { IsGraphic(); $linecap=$1; $stream.="$linecap J\n"; } elsif ($par=~m/exec %%%%PAUSE/i and !$noslide) { my $trans='BLOCK'; if ($firstpause) { $trans='PAGE'; $firstpause=0; } MakeXO(); NewPage($trans); $present=1; } elsif ($par=~m/exec %%%%BEGINONCE/) { if ($noslide) { $suppress=1; } else { my $trans='BLOCK'; if ($firstpause) { $trans='PAGE'; $firstpause=0; } MakeXO(); NewPage($trans); $present=1; } } elsif ($par=~m/exec %%%%ENDONCE/) { if ($noslide) { $suppress=0; } else { MakeXO(); NewPage('BLOCK'); $cat->{PageMode}='/FullScreen'; pop(@XOstream); } } elsif ($par=~m/\[(.+) pdfmark/) { my $pdfmark=$1; $pdfmark=~s((\d{4,6}) u)(sprintf("%.1f",$1/$desc{sizescale}))eg; $pdfmark=~s(\\\[u00(..)\])(chr(hex($1)))eg; if ($pdfmark=~m/(.+) \/DOCINFO/) { my @xwds=split(' ',"<< $1 >>"); my $docinfo=ParsePDFValue(\@xwds); foreach my $k (sort keys %{$docinfo}) { $info{$k}=$docinfo->{$k} if $k ne 'Producer'; } } elsif ($pdfmark=~m/(.+) \/DOCVIEW/) { my @xwds=split(' ',"<< $1 >>"); my $docview=ParsePDFValue(\@xwds); foreach my $k (sort keys %{$docview}) { $cat->{$k}=$docview->{$k} if !exists($cat->{$k}); } } elsif ($pdfmark=~m/(.+) \/DEST/) { my @xwds=split(' ',"<< $1 >>"); my $dest=ParsePDFValue(\@xwds); foreach my $v (@{$dest->{View}}) { $v=GraphY(abs($v)) if substr($v,0,1) eq '-'; } unshift(@{$dest->{View}},"$cpageno 0 R"); if (!defined($dests)) { $cat->{Dests}=BuildObj(++$objct,{}); $dests=$obj[$objct]->{DATA}; } my $k=substr($dest->{Dest},1); $dests->{$k}=$dest->{View}; } elsif ($pdfmark=~m/(.+) \/ANN/) { my $l=$1; $l=~s/Color/C/; $l=~s/Action/A/; $l=~s/Title/T/; $l=~s'/Subtype /URI'/S /URI'; my @xwds=split(' ',"<< $l >>"); my $annotno=BuildObj(++$objct,ParsePDFValue(\@xwds)); my $annot=$obj[$objct]; $annot->{DATA}->{Type}='/Annot'; FixRect($annot->{DATA}->{Rect}); # Y origin to ll FixPDFColour($annot->{DATA}); push(@PageAnnots,$annotno); } elsif ($pdfmark=~m/(.+) \/OUT/) { my $t=$1; $t=~s/\\\) /\\\\\) /g; $t=~s/\\e/\\\\/g; $t=~m/(^.*\/Title \()(.*)(\).*)/; my ($pre,$title,$post)=($1,$2,$3); $title=~s/(?<!\\)\(/\\\(/g; $title=~s/(?<!\\)\)/\\\)/g; my @xwds=split(' ',"<< $pre$title$post >>"); my $out=ParsePDFValue(\@xwds); my $this=[$out,[]]; if (exists($out->{Level})) { my $lev=abs($out->{Level}); my $levsgn=sgn($out->{Level}); delete($out->{Level}); if ($lev > $thislev) { my $thisoutlev=$curoutlev->[$#{$curoutlev}]->[1]; $thisoutlev->[0]=[0,$curoutlev,0,$levsgn]; $curoutlev=$thisoutlev; $curoutlevno=$#{$curoutlev}; $thislev++; } elsif ($lev < $thislev) { my $openct=$curoutlev->[0]->[2]; while ($thislev > $lev) { my $nxtoutlev=$curoutlev->[0]->[1]; $nxtoutlev->[0]->[2]+=$openct if $curoutlev->[0]->[3]==1; $openct=0 if $nxtoutlev->[0]->[3]==-1; $curoutlev=$nxtoutlev; $thislev--; } $curoutlevno=$#{$curoutlev}; } # push(@{$curoutlev},$this); splice(@{$curoutlev},++$curoutlevno,0,$this); $curoutlev->[0]->[2]++; } else { # This code supports old pdfmark.tmac, unused by pdf.tmac while ($curoutlev->[0]->[0] == 0 and defined($curoutlev->[0]->[1])) { $curoutlev=$curoutlev->[0]->[1]; } $curoutlev->[0]->[0]--; $curoutlev->[0]->[2]++; push(@{$curoutlev},$this); if (exists($out->{Count}) and $out->{Count} != 0) { push(@{$this->[1]},[abs($out->{Count}),$curoutlev,0,sgn($out->{Count})]); $curoutlev=$this->[1]; if ($out->{Count} > 0) { my $p=$curoutlev; while (defined($p)) { $p->[0]->[2]+=$out->{Count}; $p=$p->[0]->[1]; } } } } } } } elsif (lc($xprm[0]) eq 'pdf:') { if (lc($xprm[1]) eq 'import') { my $fil=$xprm[2]; my $llx=$xprm[3]; my $lly=$xprm[4]; my $urx=$xprm[5]; my $ury=$xprm[6]; my $wid=$xprm[7]; my $hgt=$xprm[8]||-1; my $mat=[1,0,0,1,0,0]; if (!exists($incfil{$fil})) { if ($fil=~m/\.pdf$/) { $incfil{$fil}=LoadPDF($fil,$mat,$wid,$hgt,"import"); } elsif ($fil=~m/\.swf$/) { my $xscale=$wid/($urx-$llx+1); my $yscale=($hgt<=0)?$xscale:($hgt/($ury-$lly+1)); $hgt=($ury-$lly+1)*$yscale; if ($rot) { $mat->[3]=$xscale; $mat->[0]=$yscale; } else { $mat->[0]=$xscale; $mat->[3]=$yscale; } $incfil{$fil}=LoadSWF($fil,[$llx,$lly,$urx,$ury],$mat); } else { Msg(0,"Unknown filetype '$fil'"); return undef; } } if (defined($incfil{$fil})) { IsGraphic(); if ($fil=~m/\.pdf$/) { my $bbox=$incfil{$fil}->[1]; my $xscale=d3($wid/($bbox->[2]-$bbox->[0]+1)); my $yscale=d3(($hgt<=0)?$xscale:($hgt/($bbox->[3]-$bbox->[1]+1))); $wid=($bbox->[2]-$bbox->[0])*$xscale; $hgt=($bbox->[3]-$bbox->[1])*$yscale; $ypos+=$hgt; $stream.="q $xscale 0 0 $yscale ".PutXY($xpos,$ypos)." cm"; $stream.=" 0 1 -1 0 0 0 cm" if $rot; $stream.=" /$incfil{$fil}->[0] Do Q\n"; } elsif ($fil=~m/\.swf$/) { $stream.=PutXY($xpos,$ypos)." m /$incfil{$fil} Do\n"; } } } elsif (lc($xprm[1]) eq 'pdfpic') { my $fil=$xprm[2]; my $flag=uc($xprm[3]||'-L'); my $wid=GetPoints($xprm[4])||-1; my $hgt=GetPoints($xprm[5]||-1); my $ll=GetPoints($xprm[6]||0); my $mat=[1,0,0,1,0,0]; if (!exists($incfil{$fil})) { $incfil{$fil}=LoadPDF($fil,$mat,$wid,$hgt,"pdfpic"); } if (defined($incfil{$fil})) { IsGraphic(); my $bbox=$incfil{$fil}->[1]; $wid=($bbox->[2]-$bbox->[0]) if $wid <= 0; my $xscale=d3($wid/($bbox->[2]-$bbox->[0])); my $yscale=d3(($hgt<=0)?$xscale:($hgt/($bbox->[3]-$bbox->[1]))); $xscale=($wid<=0)?$yscale:$xscale; $xscale=$yscale if $yscale < $xscale; $yscale=$xscale if $xscale < $yscale; $wid=($bbox->[2]-$bbox->[0])*$xscale; $hgt=($bbox->[3]-$bbox->[1])*$yscale; if ($flag eq '-C' and $ll > $wid) { $xpos=int(($ll-$wid)/2); } elsif ($flag eq '-R' and $ll > $wid) { $xpos=$ll-$wid; } $ypos+=$hgt; $stream.="q $xscale 0 0 $yscale ".PutXY($xpos,$ypos)." cm"; $stream.=" 0 1 -1 0 0 0 cm" if $rot; $stream.=" /$incfil{$fil}->[0] Do Q\n"; } } elsif (lc($xprm[1]) eq 'xrev') { $xrev=!$xrev; } elsif (lc($xprm[1]) eq 'markstart') { $mark={'rst' => ($xprm[2]+$xprm[4])/$unitwidth, 'rsb' => ($xprm[3]-$xprm[4])/$unitwidth, 'xpos' => $xpos-($xprm[4]/$unitwidth), 'ypos' => $ypos, 'lead' => $xprm[4]/$unitwidth, 'pdfmark' => join(' ',@xprm[5..$#xprm])}; } elsif (lc($xprm[1]) eq 'markend') { PutHotSpot($xpos) if defined($mark); $mark=undef; } elsif (lc($xprm[1]) eq 'marksuspend') { $suspendmark=$mark; $mark=undef; } elsif (lc($xprm[1]) eq 'markrestart') { $mark=$suspendmark; $suspendmark=undef; } elsif (lc($xprm[1]) eq 'pagename') { if ($pginsert > -1) { $pgnames{$xprm[2]}=$pages->{Kids}->[$pginsert]; } else { $pgnames{$xprm[2]}='top'; } } elsif (lc($xprm[1]) eq 'switchtopage') { my $ba=$xprm[2]; my $want=$xprm[3]; if ($pginsert > -1) { if (!defined($want) or $want eq '') { # no before/after $want=$ba; $ba='before'; } if (!defined($ba) or $ba eq '' or $want eq 'bottom') { $pginsert=$#{$pages->{Kids}}; } elsif ($want eq 'top') { $pginsert=-1; } else { if (exists($pgnames{$want})) { my $ref=$pgnames{$want}; if ($ref eq 'top') { $pginsert=-1; } else { FIND: while (1) { foreach my $j (0..$#{$pages->{Kids}}) { if ($ref eq $pages->{Kids}->[$j]) { if ($ba eq 'before') { $pginsert=$j-1; last FIND; } elsif ($ba eq 'after') { $pginsert=$j; last FIND; } else { Msg(0,"Parameter must be top|bottom|before|after not '$ba'"); last FIND; } } } Msg(0,"Can't find page ref '$ref'"); last FIND } } } else { Msg(0,"Can't find page named '$want'"); } } if ($pginsert < 0) { ($curoutlev,$curoutlevno,$thislev)=(\@outlev,0,1); } else { ($curoutlev,$curoutlevno,$thislev)=(@{$outlines[$pginsert]}); } } } elsif (lc($xprm[1]) eq 'transition' and !$noslide) { if (uc($xprm[2]) eq 'PAGE' or uc($xprm[2] eq 'SLIDE')) { $transition->{PAGE}->{S}='/'.ucfirst($xprm[3]) if $xprm[3] and $xprm[3] ne '.'; $transition->{PAGE}->{D}=$xprm[4] if $xprm[4] and $xprm[4] ne '.'; $transition->{PAGE}->{Dm}='/'.$xprm[5] if $xprm[5] and $xprm[5] ne '.'; $transition->{PAGE}->{M}='/'.$xprm[6] if $xprm[6] and $xprm[6] ne '.'; $xprm[7]='/None' if $xprm[7] and uc($xprm[7]) eq 'NONE'; $transition->{PAGE}->{Di}=$xprm[7] if $xprm[7] and $xprm[7] ne '.'; $transition->{PAGE}->{SS}=$xprm[8] if $xprm[8] and $xprm[8] ne '.'; $transition->{PAGE}->{B}=$xprm[9] if $xprm[9] and $xprm[9] ne '.'; } elsif (uc($xprm[2]) eq 'BLOCK') { $transition->{BLOCK}->{S}='/'.ucfirst($xprm[3]) if $xprm[3] and $xprm[3] ne '.'; $transition->{BLOCK}->{D}=$xprm[4] if $xprm[4] and $xprm[4] ne '.'; $transition->{BLOCK}->{Dm}='/'.$xprm[5] if $xprm[5] and $xprm[5] ne '.'; $transition->{BLOCK}->{M}='/'.$xprm[6] if $xprm[6] and $xprm[6] ne '.'; $xprm[7]='/None' if $xprm[7] and uc($xprm[7]) eq 'NONE'; $transition->{BLOCK}->{Di}=$xprm[7] if $xprm[7] and $xprm[7] ne '.'; $transition->{BLOCK}->{SS}=$xprm[8] if $xprm[8] and $xprm[8] ne '.'; $transition->{BLOCK}->{B}=$xprm[9] if $xprm[9] and $xprm[9] ne '.'; } $present=1; } } elsif (lc(substr($xprm[0],0,9)) eq 'papersize') { my ($px,$py)=split(',',substr($xprm[0],10)); $px=GetPoints($px); $py=GetPoints($py); @mediabox=(0,0,$px,$py); my @mb=@mediabox; $matrixchg=1; $custompaper=1; $cpage->{MediaBox}=\@mb; } } } sub FixPDFColour { my $o=shift; my $a=$o->{C}; my @r=(); my $c=$a->[0]; if ($#{$a}==3) { if ($c > 1) { foreach my $j (0..2) { push(@r,sprintf("%1.3f",$a->[$j]/0xffff)); } $o->{C}=\@r; } } elsif (substr($c,0,1) eq '#') { if (length($c) == 7) { foreach my $j (0..2) { push(@r,sprintf("%1.3f",hex(substr($c,$j*2+1,2))/0xff)); } $o->{C}=\@r; } elsif (length($c) == 14) { foreach my $j (0..2) { push(@r,sprintf("%1.3f",hex(substr($c,$j*4+2,4))/0xffff)); } $o->{C}=\@r; } } } sub PutHotSpot { my $endx=shift; my $l=$mark->{pdfmark}; $l=~s/Color/C/; $l=~s/Action/A/; $l=~s'/Subtype /URI'/S /URI'; $l=~s(\\\[u00(..)\])(chr(hex($1)))eg; my @xwds=split(' ',"<< $l >>"); my $annotno=BuildObj(++$objct,ParsePDFValue(\@xwds)); my $annot=$obj[$objct]; $annot->{DATA}->{Type}='/Annot'; $annot->{DATA}->{Rect}=[$mark->{xpos},$mark->{ypos}-$mark->{rsb},$endx+$mark->{lead},$mark->{ypos}-$mark->{rst}]; FixPDFColour($annot->{DATA}); FixRect($annot->{DATA}->{Rect}); # Y origin to ll push(@PageAnnots,$annotno); } sub sgn { return(1) if $_[0] > 0; return(-1) if $_[0] < 0; return(0); } sub FixRect { my $rect=shift; return if !defined($rect); $rect->[1]=GraphY($rect->[1]); $rect->[3]=GraphY($rect->[3]); } sub GetPoints { my $val=shift; $val=ToPoints($1,$2) if ($val and $val=~m/(-?[\d.]+)([cipnz])/); return $val; } # Although the PDF reference mentions XObject/Form as a way of incorporating an external PDF page into # the current PDF, it seems not to work with any current PDF reader (although I am told (by Leonard Rosenthol, # who helped author the PDF ISO standard) that Acroread 9 does support it, empiorical observation shows otherwise!!). # So... do it the hard way - full PDF parser and merge required objects!!! # sub BuildRef # { # my $fil=shift; # my $bbox=shift; # my $mat=shift; # my $wid=($bbox->[2]-$bbox->[0])*$mat->[0]; # my $hgt=($bbox->[3]-$bbox->[1])*$mat->[3]; # # if (!open(PDF,"<$fil")) # { # Msg(0,"Failed to open '$fil'"); # return(undef); # } # # my (@f)=(<PDF>); # # close(PDF); # # $objct++; # my $xonm="XO$objct"; # # $pages->{'Resources'}->{'XObject'}->{$xonm}=BuildObj($objct,{'Type' => '/XObject', # 'Subtype' => '/Form', # 'BBox' => $bbox, # 'Matrix' => $mat, # 'Resources' => $pages->{'Resources'}, # 'Ref' => {'Page' => '1', # 'F' => BuildObj($objct+1,{'Type' => '/Filespec', # 'F' => "($fil)", # 'EF' => {'F' => BuildObj($objct+2,{'Type' => '/EmbeddedFile'})} # }) # } # }); # # $obj[$objct]->{STREAM}="q 1 0 0 1 0 0 cm # q BT # 1 0 0 1 0 0 Tm # .5 g .5 G # /F5 20 Tf # (Proxy) Tj # ET Q # 0 0 m 72 0 l s # Q\n"; # # # $obj[$objct]->{STREAM}=PutXY($xpos,$ypos)." m ".PutXY($xpos+$wid,$ypos)." l ".PutXY($xpos+$wid,$ypos+$hgt)." l ".PutXY($xpos,$ypos+$hgt)." l f\n"; # $obj[$objct+2]->{STREAM}=join('',@f); # PutObj($objct); # PutObj($objct+1); # PutObj($objct+2); # $objct+=2; # return($xonm); # } sub LoadSWF { my $fil=shift; my $bbox=shift; my $mat=shift; my $wid=($bbox->[2]-$bbox->[0])*$mat->[0]; my $hgt=($bbox->[3]-$bbox->[1])*$mat->[3]; my (@path)=split('/',$fil); my $node=pop(@path); if (!open(PDF,"<$fil")) { Msg(0,"Failed to open '$fil'"); return(undef); } my (@f)=(<PDF>); close(PDF); $objct++; my $xonm="XO$objct"; $pages->{'Resources'}->{'XObject'}->{$xonm}=BuildObj($objct,{'Type' => '/XObject', 'BBox' => $bbox, 'Matrix' => $mat, 'FormType' => 1, 'Subtype' => '/Form', 'Length' => 0, 'Type' => "/XObject"}); $obj[$objct]->{STREAM}=''; PutObj($objct); $objct++; my $asset=BuildObj($objct,{'EF' => {'F' => BuildObj($objct+1,{})}, 'F' => "($node)", 'Type' => '/Filespec', 'UF' => "($node)"}); PutObj($objct); $objct++; $obj[$objct]->{STREAM}=join('',@f); PutObj($objct); $objct++; my $config=BuildObj($objct,{'Instances' => [BuildObj($objct+1,{'Params' => { 'Binding' => '/Background'}, 'Asset' => $asset})], 'Subtype' => '/Flash'}); PutObj($objct); $objct++; PutObj($objct); $objct++; my ($x,$y)=split(' ',PutXY($xpos,$ypos)); push(@{$cpage->{Annots}},BuildObj($objct,{'RichMediaContent' => {'Subtype' => '/Flash', 'Configurations' => [$config], 'Assets' => {'Names' => [ "($node)", $asset ] }}, 'P' => "$cpageno 0 R", 'RichMediaSettings' => { 'Deactivation' => { 'Condition' => '/PI', 'Type' => '/RichMediaDeactivation'}, 'Activation' => { 'Condition' => '/PV', 'Type' => '/RichMediaActivation'}}, 'F' => 68, 'Subtype' => '/RichMedia', 'Type' => '/Annot', 'Rect' => "[ $x $y ".($x+$wid)." ".($y+$hgt)." ]", 'Border' => [0,0,0]})); PutObj($objct); return $xonm; } sub OpenInc { my $fn=shift; my $fnm=$fn; my $F; if (substr($fnm,0,1) eq '/' or substr($fnm,1,1) eq ':') # dos { if (-r $fnm and open($F,"<$fnm")) { return($F,$fnm); } } else { foreach my $dir (@idirs) { $fnm="$dir/$fn"; if (-r "$fnm" and open($F,"<$fnm")) { return($F,$fnm); } } } return(undef,$fn); } sub LoadPDF { my $pdfnm=shift; my $mat=shift; my $wid=shift; my $hgt=shift; my $type=shift; my $pdf; my $pdftxt=''; my $strmlen=0; my $curobj=-1; my $instream=0; my $cont; my $adj=0; my $keepsep=$/; my ($PD,$PDnm)=OpenInc($pdfnm); if (!defined($PD)) { Msg(0,"Failed to open PDF '$pdfnm'"); return undef; } my $hdr=<$PD>; $/="\r",$adj=1 if (length($hdr) > 10); while (<$PD>) { chomp; s/\n//; if (m/endstream(\s+.*)?$/) { $instream=0; $_="endstream"; $_.=$1 if defined($1) } next if $instream; if (m'/Length\s+(\d+)(\s+\d+\s+R)?') { if (!defined($2)) { $strmlen=$1; } else { $strmlen=0; } } if (m'^(\d+) \d+ obj') { $curobj=$1; $pdf->[$curobj]->{OBJ}=undef; } if (m'stream\s*$' and ! m/^endstream/) { if ($curobj > -1) { $pdf->[$curobj]->{STREAMPOS}=[tell($PD)+$adj,$strmlen]; seek($PD,$strmlen,1); $instream=1; } else { Msg(0,"Parsing PDF '$pdfnm' failed"); return undef; } } $pdftxt.=$_.' '; } close($PD); open(PD,"<$PDnm"); # $pdftxt=~s/\]/ \]/g; my (@pdfwds)=split(' ',$pdftxt); my $wd; while ($wd=nextwd(\@pdfwds),length($wd)) { if ($wd=~m/\d+/ and defined($pdfwds[1]) and $pdfwds[1]=~m/^obj(.*)/) { $curobj=$wd; shift(@pdfwds); shift(@pdfwds); unshift(@pdfwds,$1) if defined($1) and length($1); $pdf->[$curobj]->{OBJ}=ParsePDFObj(\@pdfwds); } elsif ($wd eq 'trailer' and !exists($pdf->[0]->{OBJ})) { $pdf->[0]->{OBJ}=ParsePDFObj(\@pdfwds); } else { # print "Skip '$wd'\n"; } } my $catalog=${$pdf->[0]->{OBJ}->{Root}}; my $page=FindPage(1,$pdf); my $xobj=++$objct; # Load the streamas foreach my $o (@{$pdf}) { if (exists($o->{STREAMPOS})) { my $l; $l=$o->{OBJ}->{Length} if exists($o->{OBJ}->{Length}); $l=$pdf->[$$l]->{OBJ} if (defined($l) && ref($l) eq 'OBJREF'); Msg(1,"Unable to determine length of stream \@$o->{STREAMPOS}->[0]") if !defined($l); sysseek(PD,$o->{STREAMPOS}->[0],0); Msg(0,'Failed to read all the stream') if $l != sysread(PD,$o->{STREAM},$l); if ($gotzlib and exists($o->{OBJ}->{'Filter'}) and $o->{OBJ}->{'Filter'} eq '/FlateDecode') { $o->{STREAM}=Compress::Zlib::uncompress($o->{STREAM}); delete($o->{OBJ }->{'Filter'}); } } } close(PD); # Find BBox my $BBox; my $insmap={}; foreach my $k (qw( MediaBox ArtBox TrimBox BleedBox CropBox )) { $BBox=FindKey($pdf,$page,$k); last if $BBox; } $BBox=[0,0,595,842] if !defined($BBox); $wid=($BBox->[2]-$BBox->[0]+1) if $wid==0; my $xscale=d3(abs($wid)/($BBox->[2]-$BBox->[0]+1)); my $yscale=d3(($hgt<=0)?$xscale:(abs($hgt)/($BBox->[3]-$BBox->[1]+1))); $hgt=($BBox->[3]-$BBox->[1]+1)*$yscale; if ($type eq "import") { $mat->[0]=$xscale; $mat->[3]=$yscale; } # Find Resource my $res=FindKey($pdf,$page,'Resources'); my $xonm="XO$xobj"; # Map inserted objects to current PDF MapInsValue($pdf,$page,'',$insmap,$xobj,$pdf->[$page]->{OBJ}); # # Many PDFs include 'Resources' at the 'Page' level but if 'Resources' is held at a higher level (i.e 'Pages') # then we need to include its objects as well. # MapInsValue($pdf,$page,'',$insmap,$xobj,$res) if !exists($pdf->[$page]->{OBJ}->{Resources}); # Copy Resources my %incres=%{$res}; $incres{ProcSet}=['/PDF', '/Text', '/ImageB', '/ImageC', '/ImageI']; ($mat->[4],$mat->[5])=split(' ',PutXY($xpos,$ypos)); $pages->{'Resources'}->{'XObject'}->{$xonm}=BuildObj($xobj,{'Type' => '/XObject', 'BBox' => $BBox, 'Name' => "/$xonm", 'FormType' => 1, 'Subtype' => '/Form', 'Length' => 0, 'Type' => "/XObject", 'Resources' => \%incres}); BuildStream($xobj,$pdf,$pdf->[$page]->{OBJ}->{Contents}); $/=$keepsep; return([$xonm,$BBox] ); } sub BuildStream { my $xobj=shift; my $pdf=shift; my $val=shift; my $strm=''; my $objs; my $refval=ref($val); if ($refval eq 'OBJREF') { push(@{$objs}, $val); } elsif ($refval eq 'ARRAY') { $objs=$val; } else { Msg(0,"unexpected 'Contents'"); } foreach my $o (@{$objs}) { $strm.="\n" if $strm; $strm.=$pdf->[$$o]->{STREAM} if exists($pdf->[$$o]->{STREAM}); } $obj[$xobj]->{STREAM}=$strm; } sub MapInsHash { my $pdf=shift; my $o=shift; my $insmap=shift; my $parent=shift; my $val=shift; foreach my $k (sort keys(%{$val})) { MapInsValue($pdf,$o,$k,$insmap,$parent,$val->{$k}) if $k ne 'Contents'; } } sub MapInsValue { my $pdf=shift; my $o=shift; my $k=shift; my $insmap=shift; my $parent=shift; my $val=shift; my $refval=ref($val); if ($refval eq 'OBJREF') { if ($k ne 'Parent') { if (!exists($insmap->{IMP}->{$$val})) { $objct++; $insmap->{CUR}->{$objct}=$$val; $insmap->{IMP}->{$$val}=$objct; $obj[$objct]->{DATA}=$pdf->[$$val]->{OBJ}; $obj[$objct]->{STREAM}=$pdf->[$$val]->{STREAM} if exists($pdf->[$$val]->{STREAM}); MapInsValue($pdf,$$val,'',$insmap,$o,$pdf->[$$val]->{OBJ}); } $$val=$insmap->{IMP}->{$$val}; } else { $$val=$parent; } } elsif ($refval eq 'ARRAY') { foreach my $v (@{$val}) { MapInsValue($pdf,$o,'',$insmap,$parent,$v) } } elsif ($refval eq 'HASH') { MapInsHash($pdf,$o,$insmap,$parent,$val); } } sub FindKey { my $pdf=shift; my $page=shift; my $k=shift; if (exists($pdf->[$page]->{OBJ}->{$k})) { my $val=$pdf->[$page]->{OBJ}->{$k}; $val=$pdf->[$$val]->{OBJ} if ref($val) eq 'OBJREF'; return($val); } else { if (exists($pdf->[$page]->{OBJ}->{Parent})) { return(FindKey($pdf,${$pdf->[$page]->{OBJ}->{Parent}},$k)); } } return(undef); } sub FindPage { my $wantpg=shift; my $pdf=shift; my $catalog=${$pdf->[0]->{OBJ}->{Root}}; my $pages=${$pdf->[$catalog]->{OBJ}->{Pages}}; return(NextPage($pdf,$pages,\$wantpg)); } sub NextPage { my $pdf=shift; my $pages=shift; my $wantpg=shift; my $ret; if ($pdf->[$pages]->{OBJ}->{Type} eq '/Pages') { foreach my $kid (@{$pdf->[$pages]->{OBJ}->{Kids}}) { $ret=NextPage($pdf,$$kid,$wantpg); last if $$wantpg<=0; } } elsif ($pdf->[$pages]->{OBJ}->{Type} eq '/Page') { $$wantpg--; $ret=$pages; } return($ret); } sub nextwd { my $pdfwds=shift; my $wd=shift(@{$pdfwds}); return('') if !defined($wd); if ($wd=~m/^(.*?)(<<|>>|(?:(?<!\\)\[|\]))(.*)/) { if (defined($1) and length($1)) { unshift(@{$pdfwds},$3) if defined($3) and length($3); unshift(@{$pdfwds},$2); $wd=$1; } else { unshift(@{$pdfwds},$3) if defined($3) and length($3); $wd=$2; } } return($wd); } sub ParsePDFObj { my $pdfwds=shift; my $rtn; my $wd; while ($wd=nextwd($pdfwds),length($wd)) { if ($wd eq 'stream' or $wd eq 'endstream') { next; } elsif ($wd eq 'endobj' or $wd eq 'startxref') { last; } else { unshift(@{$pdfwds},$wd); $rtn=ParsePDFValue($pdfwds); } } return($rtn); } sub ParsePDFHash { my $pdfwds=shift; my $rtn={}; my $wd; while ($wd=nextwd($pdfwds),length($wd)) { if ($wd eq '>>') { last; } my (@w)=split('/',$wd,3); if ($w[0]) { Msg(0,"PDF Dict Key '$wd' does not start with '/'"); exit 1; } else { unshift(@{$pdfwds},"/$w[2]") if $w[2]; $wd=$w[1]; (@w)=split('\(',$wd,2); $wd=$w[0]; unshift(@{$pdfwds},"($w[1]") if defined($w[1]); (@w)=split('\<',$wd,2); $wd=$w[0]; unshift(@{$pdfwds},"<$w[1]") if defined($w[1]); $rtn->{$wd}=ParsePDFValue($pdfwds); } } return($rtn); } sub ParsePDFValue { my $pdfwds=shift; my $rtn; my $wd=nextwd($pdfwds); if ($wd=~m/^\d+$/ and $pdfwds->[0]=~m/^\d+$/ and $pdfwds->[1]=~m/^R(\]|\>|\/)?/) { shift(@{$pdfwds}); if (defined($1) and length($1)) { $pdfwds->[0]=substr($pdfwds->[0],1); } else { shift(@{$pdfwds}); } return(bless(\$wd,'OBJREF')); } if ($wd eq '<<') { return(ParsePDFHash($pdfwds)); } if ($wd eq '[') { return(ParsePDFArray($pdfwds)); } if ($wd=~m/(.*?)(\(.*)$/) { if (defined($1) and length($1)) { unshift(@{$pdfwds},$2); $wd=$1; } else { return(ParsePDFString($wd,$pdfwds)); } } if ($wd=~m/(.*?)(\<.*)$/) { if (defined($1) and length($1)) { unshift(@{$pdfwds},$2); $wd=$1; } else { return(ParsePDFHexString($wd,$pdfwds)); } } if ($wd=~m/(.+?)(\/.*)$/) { if (defined($2) and length($2)) { unshift(@{$pdfwds},$2); $wd=$1; } } return($wd); } sub ParsePDFString { my $wd=shift; my $rtn=''; my $pdfwds=shift; my $lev=0; while (length($wd)) { $rtn.=' ' if length($rtn); while ($wd=~m/(?<!\\)\(/g) {$lev++;} while ($wd=~m/(?<!\\)\)/g) {$lev--;} if ($lev<=0 and $wd=~m/^(.*?\))([^)]+)$/) { unshift(@{$pdfwds},$2) if defined($2) and length($2); $wd=$1; } $rtn.=$wd; last if $lev <= 0; $wd=nextwd($pdfwds); } return($rtn); } sub ParsePDFHexString { my $wd=shift; my $rtn=''; my $pdfwds=shift; my $lev=0; if ($wd=~m/^(<.+?>)(.*)/) { unshift(@{$pdfwds},$2) if defined($2) and length($2); $rtn=$1; } return($rtn); } sub ParsePDFArray { my $pdfwds=shift; my $rtn=[]; my $wd; while (1) { $wd=ParsePDFValue($pdfwds); last if $wd eq ']' or length($wd)==0; push(@{$rtn},$wd); } return($rtn); } sub Msg { my ($lev,$msg)=@_; print STDERR "$env{SourceFile}: " if exists($env{SourceFile}); print STDERR "$msg\n"; exit 1 if $lev; } sub PutXY { my ($x,$y)=(@_); if ($frot) { return(d3($y)." ".d3($x)); } else { $y=$mediabox[3]-$y; return(d3($x)." ".d3($y)); } } sub GraphY { my $y=shift; if ($frot) { return($y); } else { return($mediabox[3]-$y); } } sub Put { my $msg=shift; print $msg; $fct+=length($msg); } sub PutObj { my $ono=shift; my $msg="$ono 0 obj "; $obj[$ono]->{XREF}=$fct; if (exists($obj[$ono]->{STREAM})) { if ($gotzlib && !$debug && !exists($obj[$ono]->{DATA}->{'Filter'})) { $obj[$ono]->{STREAM}=Compress::Zlib::compress($obj[$ono]->{STREAM}); $obj[$ono]->{DATA}->{'Filter'}='/FlateDecode'; } $obj[$ono]->{DATA}->{'Length'}=length($obj[$ono]->{STREAM}); } PutField(\$msg,$obj[$ono]->{DATA}); PutStream(\$msg,$ono) if exists($obj[$ono]->{STREAM}); Put($msg."endobj\n"); } sub PutStream { my $msg=shift; my $ono=shift; # We could 'flate' here $$msg.="stream\n$obj[$ono]->{STREAM}endstream\n"; } sub PutField { my $pmsg=shift; my $fld=shift; my $term=shift||"\n"; my $typ=ref($fld); if ($typ eq '') { $$pmsg.="$fld$term"; } elsif ($typ eq 'ARRAY') { $$pmsg.='['; foreach my $cell (@{$fld}) { PutField($pmsg,$cell,' '); } $$pmsg.="]$term"; } elsif ($typ eq 'HASH') { $$pmsg.='<< '; foreach my $key (sort keys %{$fld}) { $$pmsg.="/$key "; PutField($pmsg,$fld->{$key}); } $$pmsg.=">>$term"; } elsif ($typ eq 'OBJREF') { $$pmsg.="$$fld 0 R$term"; } } sub BuildObj { my $ono=shift; my $val=shift; $obj[$ono]->{DATA}=$val; return("$ono 0 R "); } sub LoadFont { my $fontno=shift; my $fontnm=shift; my $ofontnm=$fontnm; return $fontlst{$fontno}->{OBJ} if (exists($fontlst{$fontno})); my $f; OpenFile(\$f,$fontdir,"$fontnm"); if (!defined($f) and $Foundry) { # Try with no foundry $fontnm=~s/.*?-//; OpenFile(\$f,$fontdir,$fontnm); } Msg(1,"Failed to open font '$ofontnm'") if !defined($f); my $foundry=''; $foundry=$1 if $fontnm=~m/^(.*?)-/; my $stg=1; my %fnt; my @fntbbox=(0,0,0,0); my $capheight=0; my $lastchr=0; my $lastnm; my $t1flags=0; my $fixwid=-1; my $ascent=0; my $charset=''; while (<$f>) { chomp; s/^ +//; s/^#.*// if $stg == 1; next if $_ eq ''; if ($stg == 1) { my ($key,$val)=split(' ',$_,2); $key=lc($key); $stg=2,next if $key eq 'kernpairs'; $stg=3,next if lc($_) eq 'charset'; $fnt{$key}=$val } elsif ($stg == 2) { $stg=3,next if lc($_) eq 'charset'; my ($ch1,$ch2,$k)=split; # $fnt{KERN}->{$ch1}->{$ch2}=$k; } else { my (@r)=split; my (@p)=split(',',$r[1]); if ($r[1] eq '"') { $fnt{NAM}->{$r[0]}=$fnt{NAM}->{$lastnm}; next; } $r[0]='u0020' if $r[3] == 32; $r[0]="u00".hex($r[3]) if $r[0] eq '---'; # next if $r[3] >255; $fnt{NAM}->{$r[0]}=[$p[0],$r[3],'/'.$r[4],$r[3],0]; $fnt{NO}->[$r[3]]=[$r[0],$r[0]]; $lastnm=$r[0]; $lastchr=$r[3] if $r[3] > $lastchr; $fixwid=$p[0] if $fixwid == -1; $fixwid=-2 if $fixwid > 0 and $p[0] != $fixwid; $fntbbox[1]=-$p[2] if defined($p[2]) and -$p[2] < $fntbbox[1]; $fntbbox[2]=$p[0] if $p[0] > $fntbbox[2]; $fntbbox[3]=$p[1] if defined($p[1]) and $p[1] > $fntbbox[3]; $ascent=$p[1] if defined($p[1]) and $p[1] > $ascent and $r[3] >= 32 and $r[3] < 128; $charset.='/'.$r[4] if defined($r[4]); $capheight=$p[1] if length($r[4]) == 1 and $r[4] ge 'A' and $r[4] le 'Z' and $p[1] > $capheight; } } close($f); foreach my $j (0..$lastchr) { $fnt{NO}->[$j]=['',''] if !defined($fnt{NO}->[$j]); } my $fno=0; my $slant=0; $fnt{DIFF}=[]; $fnt{WIDTH}=[]; $fnt{NAM}->{''}=[0,-1,'/.notdef',-1,0]; $slant=-$fnt{'slant'} if exists($fnt{'slant'}); $fnt{'spacewidth'}=700 if !exists($fnt{'spacewidth'}); $t1flags|=2**0 if $fixwid > -1; $t1flags|=(exists($fnt{'special'}))?2**2:2**5; $t1flags|=2**6 if $slant != 0; my $fontkey="$foundry $fnt{internalname}"; if (exists($download{$fontkey})) { # Not a Base Font my ($l1,$l2,$l3,$t1stream)=GetType1($download{$fontkey}); Msg(0,"Incorrect font format for '$fontkey' ($l1)") if !defined($t1stream); $fno=++$objct; $fontlst{$fontno}->{OBJ}=BuildObj($objct, {'Type' => '/Font', 'Subtype' => '/Type1', 'BaseFont' => '/'.$fnt{internalname}, 'Widths' => $fnt{WIDTH}, 'FirstChar' => 0, 'LastChar' => $lastchr, 'Encoding' => BuildObj($objct+1, {'Type' => '/Encoding', 'Differences' => $fnt{DIFF} } ), 'FontDescriptor' => BuildObj($objct+2, {'Type' => '/FontDescriptor', 'FontName' => '/'.$fnt{internalname}, 'Flags' => $t1flags, 'FontBBox' => \@fntbbox, 'ItalicAngle' => $slant, 'Ascent' => $ascent, 'Descent' => $fntbbox[1], 'CapHeight' => $capheight, 'StemV' => 0, # 'CharSet' => "($charset)", 'FontFile' => BuildObj($objct+3, {'Length1' => $l1, 'Length2' => $l2, 'Length3' => $l3 } ) } ) } ); $objct+=3; $fontlst{$fontno}->{NM}='/F'.$fontno; $pages->{'Resources'}->{'Font'}->{'F'.$fontno}=$fontlst{$fontno}->{OBJ}; $fontlst{$fontno}->{FNT}=\%fnt; $obj[$objct]->{STREAM}=$t1stream; } else { $fno=++$objct; $fontlst{$fontno}->{OBJ}=BuildObj($objct, {'Type' => '/Font', 'Subtype' => '/Type1', 'BaseFont' => '/'.$fnt{internalname}, 'Widths' => $fnt{WIDTH}, 'FirstChar' => 0, 'LastChar' => $lastchr, 'Encoding' => BuildObj($objct+1, {'Type' => '/Encoding', 'Differences' => $fnt{DIFF} } ), 'FontDescriptor' => BuildObj($objct+2, {'Type' => '/FontDescriptor', 'FontName' => '/'.$fnt{internalname}, 'Flags' => $t1flags, 'FontBBox' => \@fntbbox, 'ItalicAngle' => $slant, 'Ascent' => $ascent, 'Descent' => $fntbbox[1], 'CapHeight' => $capheight, 'StemV' => 0, 'CharSet' => "($charset)", } ) } ); $objct+=2; $fontlst{$fontno}->{NM}='/F'.$fontno; $pages->{'Resources'}->{'Font'}->{'F'.$fontno}=$fontlst{$fontno}->{OBJ}; $fontlst{$fontno}->{FNT}=\%fnt; } if (defined($fnt{encoding}) and $fnt{encoding} eq 'text.enc' and $ucmap ne '') { if ($textenccmap eq '') { $textenccmap = BuildObj($objct+1,{}); $objct++; $obj[$objct]->{STREAM}=$ucmap; } $obj[$fno]->{DATA}->{'ToUnicode'}=$textenccmap; } # PutObj($fno); # PutObj($fno+1); # PutObj($fno+2) if defined($obj[$fno+2]); # PutObj($fno+3) if defined($obj[$fno+3]); } sub GetType1 { my $file=shift; my ($l1,$l2,$l3); # Return lengths my ($head,$body,$tail); # Font contents my $f; OpenFile(\$f,$fontdir,"$file"); Msg(1,"Failed to open '$file'") if !defined($f); $head=GetChunk($f,1,"currentfile eexec"); $body=GetChunk($f,2,"00000000") if !eof($f); $tail=GetChunk($f,3,"cleartomark") if !eof($f); $l1=length($head); $l2=length($body); $l3=length($tail); return($l1,$l2,$l3,"$head$body$tail"); } sub GetChunk { my $F=shift; my $segno=shift; my $ascterm=shift; my ($type,$hdr,$chunk,@msg); binmode($F); my $enc="ascii"; while (1) { # There may be multiple chunks of the same type my $ct=read($F,$hdr,2); if ($ct==2) { if (substr($hdr,0,1) eq "\x80") { # binary chunk my $chunktype=ord(substr($hdr,1,1)); $enc="binary"; if (defined($type) and $type != $chunktype) { seek($F,-2,1); last; } $type=$chunktype; return if $chunktype == 3; $ct=read($F,$hdr,4); Msg(1,"Failed to read binary segment length"), return if $ct != 4; my $sl=unpack('V',$hdr); my $data; my $chk=read($F,$data,$sl); Msg(1 ,"Failed to read binary segment"), return if $chk != $sl; $chunk.=$data; } else { # ascii chunk my $hex=0; seek($F,-2,1); my $ct=0; while (1) { my $lin=<$F>; last if !$lin; $hex=1,$enc.=" hex" if $segno == 2 and !$ct and $lin=~m/^[A-F0-9a-f]{4,4}/; if ($segno !=2 and $lin=~m/^(.*$ascterm\n?)(.*)/) { $chunk.=$1; seek($F,-length($2)-1,1) if $2; last; } elsif ($segno == 2 and $lin=~m/^(.*?)($ascterm.*)/) { $chunk.=$1; seek($F,-length($2)-1,1) if $2; last; } chomp($lin), $lin=pack('H*',$lin) if $hex; $chunk.=$lin; $ct++; } last; } } else { push(@msg,"Failed to read 2 header bytes"); } } return $chunk; } sub OutStream { my $ono=shift; IsGraphic(); $stream.="Q\n"; $obj[$ono]->{STREAM}=$stream; $obj[$ono]->{DATA}->{Length}=length($stream); $stream=''; PutObj($ono); } sub do_p { my $trans='BLOCK'; $trans='PAGE' if $firstpause; NewPage($trans); @XOstream=(); @PageAnnots=(); $firstpause=1; } sub FixTrans { my $t=shift; my $style=$t->{S}; if ($style) { delete($t->{Dm}) if $style ne '/Split' and $style ne '/Blinds'; delete($t->{M}) if !($style eq '/Split' or $style eq '/Box' or $style eq '/Fly'); delete($t->{Di}) if !($style eq '/Wipe' or $style eq '/Glitter' or $style eq '/Fly' or $style eq '/Cover' or $style eq '/Uncover' or $style eq '/Push') or ($style eq '/Fly' and $t->{Di} eq '/None' and $t->{SS} != 1); delete($t->{SS}) if !($style eq '/Fly'); delete($t->{B}) if !($style eq '/Fly'); } return($t); } sub NewPage { my $trans=shift; # Start of pages if ($cpageno > 0) { if ($#XOstream>=0) { MakeXO() if $stream; $stream=join("\n",@XOstream,''); } my %t=%{$transition->{$trans}}; $cpage->{MediaBox}=\@mediabox if $custompaper; $cpage->{Trans}=FixTrans(\%t) if $t{S}; if ($#PageAnnots >= 0) { @{$cpage->{Annots}}=@PageAnnots; } PutObj($cpageno); OutStream($cpageno+1); } $cpageno=++$objct; my $thispg=BuildObj($objct, {'Type' => '/Page', 'Group' => {'CS' => '/DeviceRGB', 'S' => '/Transparency'}, 'Parent' => '2 0 R', 'Contents' => [ BuildObj($objct+1, {'Length' => 0} ) ], } ); splice(@{$pages->{Kids}},++$pginsert,0,$thispg); splice(@outlines,$pginsert,0,[$curoutlev,$#{$curoutlev}+1,$thislev]); $objct+=1; $cpage=$obj[$cpageno]->{DATA}; $pages->{'Count'}++; $stream="q 1 0 0 1 0 0 cm\n$linejoin J\n$linecap j\n0.4 w\n"; $stream.=$strkcol."\n", $curstrk=$strkcol if $strkcol ne ''; $mode='g'; $curfill=''; # @mediabox=@defaultmb; } sub MakeXO { $stream.="%mode=$mode\n"; IsGraphic(); $stream.="Q\n"; my $xobj=++$objct; my $xonm="XO$xobj"; $pages->{'Resources'}->{'XObject'}->{$xonm}=BuildObj($xobj,{'Type' => '/XObject', 'BBox' => \@mediabox, 'Name' => "/$xonm", 'FormType' => 1, 'Subtype' => '/Form', 'Length' => 0, 'Type' => "/XObject"}); $obj[$xobj]->{STREAM}=$stream; $stream=''; push(@XOstream,"q") if $#XOstream==-1; push(@XOstream,"/$xonm Do"); } sub do_f { my $par=shift; my $fnt=$fontlst{$par}->{FNT}; # IsText(); $cft="$par"; $fontchg=1; # $stream.="/F$cft $cftsz Tf\n" if $cftsz; $widtbl=CacheWid($par); $origwidtbl=[]; foreach my $w (@{$fnt->{NO}}) { push(@{$origwidtbl},$fnt->{NAM}->{$w->[1]}->[WIDTH]); } # $krntbl=$fnt->{KERN}; } sub CacheWid { my $par=shift; if (!defined($fontlst{$par}->{CACHE}->{$cftsz})) { $fontlst{$par}->{CACHE}->{$cftsz}=BuildCache($fontlst{$par}->{FNT}); } return($fontlst{$par}->{CACHE}->{$cftsz}); } sub BuildCache { my $fnt=shift; my @cwid; $origwidtbl=[]; foreach my $w (@{$fnt->{NO}}) { my $wid=(defined($w) and defined($w->[1]))?$fnt->{NAM}->{$w->[1]}->[WIDTH]:0; push(@cwid,$wid*$cftsz); push(@{$origwidtbl},$wid); } return(\@cwid); } sub IsText { if ($mode eq 'g') { $xpos+=$pendmv/$unitwidth; $stream.="q BT\n$matrix ".PutXY($xpos,$ypos)." Tm\n"; $poschg=0; $fontchg=0; $pendmv=0; $matrixchg=0; $tmxpos=$xpos; $stream.=$textcol."\n", $curfill=$textcol if $textcol ne $curfill; if (defined($cft)) { $whtsz=$fontlst{$cft}->{FNT}->{spacewidth}*$cftsz; $stream.="/F$cft $cftsz Tf\n"; } $stream.="$curkern Tc\n"; } if ($poschg or $matrixchg) { PutLine(0) if $matrixchg; $stream.="$matrix ".PutXY($xpos,$ypos)." Tm\n", $poschg=0; $tmxpos=$xpos; $matrixchg=0; $stream.="$curkern Tc\n"; } if ($fontchg) { PutLine(0); $whtsz=$fontlst{$cft}->{FNT}->{spacewidth}*$cftsz; $stream.="/F$cft $cftsz Tf\n" if $cftsz and defined($cft); $fontchg=0; } $mode='t'; } sub IsGraphic { if ($mode eq 't') { PutLine(); $stream.="ET Q\n"; $xpos+=($pendmv-$nomove)/$unitwidth; $pendmv=0; $nomove=0; $stream.=$strkcol."\n", $curstrk=$strkcol if $strkcol ne $curstrk; $curfill=$fillcol; } $mode='g'; } sub do_s { my $par=shift; $par/=$unitwidth; if ($par != $cftsz and defined($cft)) { PutLine(); $cftsz=$par; Set_LWidth() if $lwidth < 1; # $stream.="/F$cft $cftsz Tf\n"; $fontchg=1; $widtbl=CacheWid($cft); } else { $cftsz=$par; Set_LWidth() if $lwidth < 1; } } sub Set_LWidth { IsGraphic(); $stream.=((($desc{res}/(72*$desc{sizescale}))*$linewidth*$cftsz)/1000)." w\n"; return; } sub do_m { # Groff uses /m[] for text & graphic stroke, and /M[] (DF?) for graphic fill. # PDF uses G/RG/K for graphic stroke, and g/rg/k for text & graphic fill. # # This means that we must maintain g/rg/k state separately for text colour & graphic fill (this is # probably why 'gs' maintains seperate graphic states for text & graphics when distilling PS -> PDF). # # To facilitate this:- # # $textcol = current groff stroke colour # $fillcol = current groff fill colour # $curfill = current PDF fill colour my $par=shift; my $mcmd=substr($par,0,1); $par=substr($par,1); $par=~s/^ +//; # IsGraphic(); $textcol=set_col($mcmd,$par,0); $strkcol=set_col($mcmd,$par,1); if ($mode eq 't') { PutLine(); $stream.=$textcol."\n"; $curfill=$textcol; } else { $stream.="$strkcol\n"; $curstrk=$strkcol; } } sub set_col { my $mcmd=shift; my $par=shift; my $upper=shift; my @oper=('g','k','rg'); @oper=('G','K','RG') if $upper; if ($mcmd eq 'd') { # default colour return("0 $oper[0]"); } my (@c)=split(' ',$par); if ($mcmd eq 'c') { # Text CMY return(d3($c[0]/65535).' '.d3($c[1]/65535).' '.d3($c[2]/65535)." 0 $oper[1]"); } elsif ($mcmd eq 'k') { # Text CMYK return(d3($c[0]/65535).' '.d3($c[1]/65535).' '.d3($c[2]/65535).' '.d3($c[3]/65535)." $oper[1]"); } elsif ($mcmd eq 'g') { # Text Grey return(d3($c[0]/65535)." $oper[0]"); } elsif ($mcmd eq 'r') { # Text RGB0 return(d3($c[0]/65535).' '.d3($c[1]/65535).' '.d3($c[2]/65535)." $oper[2]"); } } sub do_D { my $par=shift; my $Dcmd=substr($par,0,1); $par=substr($par,1); $xpos+=$pendmv/$unitwidth; $pendmv=0; IsGraphic(); if ($Dcmd eq 'F') { my $mcmd=substr($par,0,1); $par=substr($par,1); $par=~s/^ +//; $fillcol=set_col($mcmd,$par,0); $stream.="$fillcol\n"; $curfill=$fillcol; } elsif ($Dcmd eq 'f') { my $mcmd=substr($par,0,1); $par=substr($par,1); $par=~s/^ +//; ($par)=split(' ',$par); if ($par >= 0 and $par <= 1000) { $fillcol=set_col('g',int((1000-$par)*65535/1000),0); } else { $fillcol=lc($textcol); } $stream.="$fillcol\n"; $curfill=$fillcol; } elsif ($Dcmd eq '~') { # B-Spline my (@p)=split(' ',$par); my ($nxpos,$nypos); foreach my $p (@p) { $p/=$unitwidth; } $stream.=PutXY($xpos,$ypos)." m\n"; $xpos+=($p[0]/2); $ypos+=($p[1]/2); $stream.=PutXY($xpos,$ypos)." l\n"; for (my $i=0; $i < $#p-1; $i+=2) { $nxpos=(($p[$i]*$tnum)/(2*$tden)); $nypos=(($p[$i+1]*$tnum)/(2*$tden)); $stream.=PutXY(($xpos+$nxpos),($ypos+$nypos))." "; $nxpos=($p[$i]/2 + ($p[$i+2]*($tden-$tnum))/(2*$tden)); $nypos=($p[$i+1]/2 + ($p[$i+3]*($tden-$tnum))/(2*$tden)); $stream.=PutXY(($xpos+$nxpos),($ypos+$nypos))." "; $nxpos=(($p[$i]-$p[$i]/2) + $p[$i+2]/2); $nypos=(($p[$i+1]-$p[$i+1]/2) + $p[$i+3]/2); $stream.=PutXY(($xpos+$nxpos),($ypos+$nypos))." c\n"; $xpos+=$nxpos; $ypos+=$nypos; } $xpos+=($p[$#p-1]-$p[$#p-1]/2); $ypos+=($p[$#p]-$p[$#p]/2); $stream.=PutXY($xpos,$ypos)." l\nS\n"; $poschg=1; } elsif ($Dcmd eq 'p' or $Dcmd eq 'P') { # Polygon my (@p)=split(' ',$par); my ($nxpos,$nypos); foreach my $p (@p) { $p/=$unitwidth; } $stream.=PutXY($xpos,$ypos)." m\n"; for (my $i=0; $i < $#p; $i+=2) { $xpos+=($p[$i]); $ypos+=($p[$i+1]); $stream.=PutXY($xpos,$ypos)." l\n"; } if ($Dcmd eq 'p') { $stream.="s\n"; } else { $stream.="f\n"; } $poschg=1; } elsif ($Dcmd eq 'c') { # Stroke circle $par=substr($par,1); my (@p)=split(' ',$par); DrawCircle($p[0],$p[0]); $stream.="s\n"; $poschg=1; } elsif ($Dcmd eq 'C') { # Fill circle $par=substr($par,1); my (@p)=split(' ',$par); DrawCircle($p[0],$p[0]); $stream.="f\n"; $poschg=1; } elsif ($Dcmd eq 'e') { # Stroke ellipse $par=substr($par,1); my (@p)=split(' ',$par); DrawCircle($p[0],$p[1]); $stream.="s\n"; $poschg=1; } elsif ($Dcmd eq 'E') { # Fill ellipse $par=substr($par,1); my (@p)=split(' ',$par); DrawCircle($p[0],$p[1]); $stream.="f\n"; $poschg=1; } elsif ($Dcmd eq 'l') { # Line To $par=substr($par,1); my (@p)=split(' ',$par); foreach my $p (@p) { $p/=$unitwidth; } $stream.=PutXY($xpos,$ypos)." m\n"; $xpos+=$p[0]; $ypos+=$p[1]; $stream.=PutXY($xpos,$ypos)." l\n"; $stream.="S\n"; $poschg=1; } elsif ($Dcmd eq 't') { # Line Thickness $par=substr($par,1); my (@p)=split(' ',$par); foreach my $p (@p) { $p/=$unitwidth; } # $xpos+=$p[0]*100; # WTF!!! #int lw = ((font::res/(72*font::sizescale))*linewidth*env->size)/1000; $p[0]=(($desc{res}/(72*$desc{sizescale}))*$linewidth*$cftsz)/1000 if $p[0] < 0; $lwidth=$p[0]; $stream.="$p[0] w\n"; $poschg=1; $xpos+=$lwidth; } elsif ($Dcmd eq 'a') { # Arc $par=substr($par,1); my (@p)=split(' ',$par); my $rad180=3.14159; my $rad360=$rad180*2; my $rad90=$rad180/2; foreach my $p (@p) { $p/=$unitwidth; } # Documentation is wrong. Groff does not use Dh1,Dv1 as centre of the circle! my $centre=adjust_arc_centre(\@p); # Using formula here : http://www.tinaja.com/glib/bezcirc2.pdf # First calculate angle between start and end point my ($startang,$r)=RtoP(-$centre->[0],$centre->[1]); my ($endang,$r2)=RtoP(($p[0]+$p[2])-$centre->[0],-($p[1]+$p[3]-$centre->[1])); $endang+=$rad360 if $endang < $startang; my $totang=($endang-$startang)/4; # do it in 4 pieces # Now 1 piece my $x0=cos($totang/2); my $y0=sin($totang/2); my $x3=$x0; my $y3=-$y0; my $x1=(4-$x0)/3; my $y1=((1-$x0)*(3-$x0))/(3*$y0); my $x2=$x1; my $y2=-$y1; # Rotate to start position and draw 4 pieces foreach my $j (0..3) { PlotArcSegment($totang/2+$startang+$j*$totang,$r,$xpos+$centre->[0],GraphY($ypos+$centre->[1]),$x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3); } $xpos+=$p[0]+$p[2]; $ypos+=$p[1]+$p[3]; $poschg=1; } } sub deg { return int($_[0]*180/3.14159); } sub adjust_arc_centre { # Taken from geometry.cpp # We move the center along a line parallel to the line between # the specified start point and end point so that the center # is equidistant between the start and end point. # It can be proved (using Lagrange multipliers) that this will # give the point nearest to the specified center that is equidistant # between the start and end point. my $p=shift; my @c; my $x = $p->[0] + $p->[2]; # (x, y) is the end point my $y = $p->[1] + $p->[3]; my $n = $x*$x + $y*$y; if ($n != 0) { $c[0]= $p->[0]; $c[1] = $p->[1]; my $k = .5 - ($c[0]*$x + $c[1]*$y)/$n; $c[0] += $k*$x; $c[1] += $k*$y; return(\@c); } else { return(undef); } } sub PlotArcSegment { my ($ang,$r,$transx,$transy,$x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3)=@_; my $cos=cos($ang); my $sin=sin($ang); my @mat=($cos,$sin,-$sin,$cos,0,0); my $lw=$lwidth/$r; $stream.="q $r 0 0 $r $transx $transy cm ".join(' ',@mat)." cm $lw w $x0 $y0 m $x1 $y1 $x2 $y2 $x3 $y3 c S Q\n"; } sub DrawCircle { my $hd=shift; my $vd=shift; my $hr=$hd/2/$unitwidth; my $vr=$vd/2/$unitwidth; my $kappa=0.5522847498; $hd/=$unitwidth; $vd/=$unitwidth; $stream.=PutXY(($xpos+$hd),$ypos)." m\n"; $stream.=PutXY(($xpos+$hd),($ypos+$vr*$kappa))." ".PutXY(($xpos+$hr+$hr*$kappa),($ypos+$vr))." ".PutXY(($xpos+$hr),($ypos+$vr))." c\n"; $stream.=PutXY(($xpos+$hr-$hr*$kappa),($ypos+$vr))." ".PutXY(($xpos),($ypos+$vr*$kappa))." ".PutXY(($xpos),($ypos))." c\n"; $stream.=PutXY(($xpos),($ypos-$vr*$kappa))." ".PutXY(($xpos+$hr-$hr*$kappa),($ypos-$vr))." ".PutXY(($xpos+$hr),($ypos-$vr))." c\n"; $stream.=PutXY(($xpos+$hr+$hr*$kappa),($ypos-$vr))." ".PutXY(($xpos+$hd),($ypos-$vr*$kappa))." ".PutXY(($xpos+$hd),($ypos))." c\n"; $xpos+=$hd; $poschg=1; } sub FindCircle { my ($x1,$y1,$x2,$y2,$x3,$y3)=@_; my ($Xo, $Yo); my $x=$x2+$x3; my $y=$y2+$y3; my $n=$x**2+$y**2; if ($n) { my $k=.5-($x2*$x + $y2*$y)/$n; return(sqrt($n),$x2+$k*$x,$y2+$k*$y); } else { return(-1); } } sub PtoR { my ($theta,$r)=@_; return($r*cos($theta),$r*sin($theta)); } sub RtoP { my ($x,$y)=@_; return(atan2($y,$x),sqrt($x**2+$y**2)); } sub PutLine { my $f=shift; IsText() if !defined($f); return if (scalar(@lin) == 0) or (!defined($lin[0]->[0]) and $#lin == 0); # $stream.="% --- wht=$whtsz, pend=$pendmv, nomv=$nomove\n" if $debug; $pendmv-=$nomove; $lin[$#lin]->[1]=-$pendmv/$cftsz if ($pendmv != 0); foreach my $wd (@lin) { next if !defined($wd->[0]); $wd->[0]=~s/\\/\\\\/g; $wd->[0]=~s/\(/\\(/g; $wd->[0]=~s/\)/\\)/g; $wd->[0]=~s/!\|!\|/\\/g; $wd->[1]=d3($wd->[1]); } if (0) { if (scalar(@lin) == 1 and (!defined($lin[0]->[1]) or $lin[0]->[1] == 0)) { $stream.="($lin[0]->[0]) Tj\n"; } else { $stream.="["; foreach my $wd (@lin) { $stream.="($wd->[0]) " if defined($wd->[0]); $stream.="$wd->[1] " if defined($wd->[1]) and $wd->[1] != 0; } $stream.="] TJ\n"; } } else { if (scalar(@lin) == 1 and (!defined($lin[0]->[1]) or $lin[0]->[1] == 0)) { $stream.="0 Tw ($lin[0]->[0]) Tj\n"; } else { if ($wt>=-1 or $#lin == 0 or $lin[0]->[1]>=0) { $stream.="0 Tw ["; foreach my $wd (@lin) { $stream.="($wd->[0]) " if defined($wd->[0]); $stream.="$wd->[1] " if defined($wd->[1]) and $wd->[1] != 0; } $stream.="] TJ\n"; } else { # $stream.="\%dg 0 Tw ["; # # foreach my $wd (@lin) # { # $stream.="($wd->[0]) " if defined($wd->[0]); # $stream.="$wd->[1] " if defined($wd->[1]) and $wd->[1] != 0; # } # # $stream.="] TJ\n"; # # my $wt=$lin[0]->[1]||0; # while ($wt < -$whtsz/$cftsz) # { # $wt+=$whtsz/$cftsz; # } $stream.=sprintf( "%.3f Tw ",-($whtsz+$wt*$cftsz)/$unitwidth-$curkern ); if (!defined($lin[0]->[0]) and defined($lin[0]->[1])) { $stream.="[ $lin[0]->[1] ("; shift @lin; } else { $stream.="[("; } foreach my $wd (@lin) { my $wwt=$wd->[1]||0; while ($wwt <= $wt+.1) { $wwt-=$wt; $wd->[0].=' '; } if (abs($wwt) < .1 or $wwt == 0) { $stream.="$wd->[0]" if defined($wd->[0]); } else { $wwt=sprintf("%.3f",$wwt); $stream.="$wd->[0]) $wwt (" if defined($wd->[0]); } } $stream.=")] TJ\n"; } } } @lin=(); $xpos+=$pendmv/$unitwidth; $pendmv=0; $nomove=0; $wt=-1; } sub d3 { return(sprintf("%.3f",shift || 0)); } sub LoadAhead { my $no=shift; foreach my $j (1..$no) { my $lin=<$input>; chomp($lin); $lin=~s/\r$//; $lct++; push(@ahead,$lin); $stream.="%% $lin\n" if $debug; } } sub do_V { my $par=shift; if ($mode eq 't') { PutLine(); } else { $xpos+=$pendmv/$unitwidth; $pendmv=0; } $ypos=$par/$unitwidth; LoadAhead(1); if (substr($ahead[0],0,1) eq 'H') { $xpos=substr($ahead[0],1)/$unitwidth; $nomove=$pendmv=0; @ahead=(); } $poschg=1; } sub do_v { my $par=shift; PutLine() if $mode eq 't'; $ypos+=$par/$unitwidth; $poschg=1; } sub TextWid { my $txt=shift; my $fnt=shift; my $w=0; my $ck=0; foreach my $c (split('',$txt)) { my $cn=ord($c); $widtbl->[$cn]=$origwidtbl->[$cn]*$cftsz if !defined($widtbl->[$cn]); $w+=$widtbl->[$cn]; } $ck=length($txt)*$curkern; return(($w/$unitwidth)+$ck); } sub do_t { my $par=shift; my $fnt=$fontlst{$cft}->{FNT}; if ($kernadjust != $curkern) { PutLine(); $stream.="$kernadjust Tc\n"; $curkern=$kernadjust; } my $par2=$par; $par2=~s/^!\|!\|(\d\d\d)/chr(oct($1))/e; foreach my $j (0..length($par2)-1) { my $cn=ord(substr($par2,$j,1)); my $chnm=$fnt->{NAM}->{$fnt->{NO}->[$cn]->[1]}; if ($chnm->[USED]==0) { $chnm->[USED]=1; } elsif ($fnt->{NO}->[$cn]->[0] ne $fnt->{NO}->[$cn]->[1]) { # A glyph has already been remapped to this char, so find a spare my $cn2=RemapChr($cn,$fnt,$fnt->{NO}->[$cn]->[0]); $stream.="% MMM Remap $cn to $cn2\n" if $debug; if ($cn2) { substr($par2,$j,1)=chr($cn2); if ($par=~m/^!\|!\|(\d\d\d)/) { substr($par,4,3)=sprintf("%03o",$cn2); } else { substr($par,$j,1)=chr($cn2); } } } } my $wid=TextWid($par2,$fnt); $par=reverse(split('',$par)) if $xrev and $par!~m/^!\|!\|(\d\d\d)/; if ($n_flg and defined($mark)) { $mark->{ypos}=$ypos; $mark->{xpos}=$xpos; } $n_flg=0; IsText(); $xpos+=$wid; $xpos+=($pendmv-$nomove)/$unitwidth; $stream.="% == '$par'=$wid 'xpos=$xpos\n" if $debug; # $pendmv = 'h' move since last 't' # $nomove = width of char(s) added by 'C', 'N' or 'c' # $w-flg = 'w' seen since last t if ($fontchg) { PutLine(); $whtsz=$fontlst{$cft}->{FNT}->{spacewidth}*$cftsz; $stream.="/F$cft $cftsz Tf\n", $fontchg=0 if $fontchg && defined($cft); } $gotT=1; $stream.="% --- wht=$whtsz, pend=$pendmv, nomv=$nomove\n" if $debug; # if ($w_flg && $#lin > -1) # { # $lin[$#lin]->[0].=' '; # $pendmv-=$whtsz; # $dontglue=1 if $pendmv==0; # } $wt=-$pendmv/$cftsz if $w_flg and $wt==-1; $pendmv-=$nomove; $nomove=0; $w_flg=0; if ($xrev) { PutLine(0) if $#lin > -1; MakeMatrix(1); $stream.="$matrix ".PutXY($xpos,$ypos)." Tm\n", $poschg=0; $stream.="$curkern Tc\n"; $stream.="0 Tw "; $stream.="($par) Tj\n"; MakeMatrix(); $stream.="$matrix ".PutXY($xpos,$ypos)." Tm\n", $poschg=0; $matrixchg=0; $stream.="$curkern Tc\n"; return; } if ($pendmv) { if ($#lin == -1) { push(@lin,[undef,-$pendmv/$cftsz]); } else { $lin[$#lin]->[1]=-$pendmv/$cftsz; } push(@lin,[$par,undef]); # $xpos+=$pendmv/$unitwidth; $pendmv=0 } else { if ($#lin == -1) { push(@lin,[$par,undef]); } else { $lin[$#lin]->[0].=$par; } } } sub do_u { my $par=shift; $par=m/([+-]?\d+) (.*)/; $kernadjust=$1/$unitwidth; do_t($2); $kernadjust=0; } sub do_h { $pendmv+=shift; } sub do_H { my $par=shift; if ($mode eq 't') { PutLine(); } else { $xpos+=$pendmv/$unitwidth; $pendmv=0; } my $newx=$par/$unitwidth; $stream.=sprintf("%.3f",$newx-$tmxpos)." 0 Td\n" if $mode eq 't'; $tmxpos=$xpos=$newx; $pendmv=$nomove=0; } sub do_C { my $par=shift; my ($par2,$nm)=FindChar($par); do_t($par2); $nomove=$fontlst{$cft}->{FNT}->{NAM}->{$par}->[WIDTH]*$cftsz ; } sub FindChar { my $chnm=shift; my $fnt=$fontlst{$cft}->{FNT}; if (exists($fnt->{NAM}->{$chnm})) { my $ch=$fnt->{NAM}->{$chnm}->[ASSIGNED]; $ch=RemapChr($ch,$fnt,$chnm) if ($ch > 255); $fnt->{NAM}->{$chnm}->[USED]=0 if $fnt->{NO}->[$ch]->[1] eq $chnm; return(($ch<32)?sprintf("!|!|%03o",$ch):chr($ch),$widtbl->[$ch]); } else { return(' '); } } sub RemapChr { my $ch=shift; my $fnt=shift; my $chnm=shift; my $unused=0; foreach my $un (0..$#{$fnt->{NO}}) { next if $un >= 139 and $un <= 144; $unused=$un,last if $fnt->{NO}->[$un]->[1] eq ''; } if (!$unused) { foreach my $un (128..255) { next if $un >= 139 and $un <= 144; my $glyph=$fnt->{NO}->[$un]->[1]; $unused=$un,last if $fnt->{NAM}->{$glyph}->[USED] == 0; } } if ($unused && $unused <= 255) { my $glyph=$fnt->{NO}->[$unused]->[1]; delete($fontlst{$cft}->{CACHE}->{$cftsz}); $fnt->{NAM}->{$chnm}->[ASSIGNED]=$unused; $fnt->{NO}->[$unused]->[1]=$chnm; $widtbl=CacheWid($cft); $stream.="% AAA Assign $chnm ($ch) to $unused\n" if $debug; $ch=$unused; return($ch); } else { Msg(0,"Too many glyphs used in font '$cft'"); return(32); } } sub do_c { my $par=shift; push(@ahead,substr($par,1)); $par=substr($par,0,1); my $ch=ord($par); do_N($ch); } sub do_N { my $par=shift; my $fnt=$fontlst{$cft}->{FNT}; if (!defined($fnt->{NO}->[$par])) { Msg(0,"No chr($par) in font $fnt->{internalname}"); return; } my $chnm=$fnt->{NO}->[$par]->[0]; do_C($chnm); } sub do_n { $gotT=0; PutLine(0); $pendmv=$nomove=0; $n_flg=1; @lin=(); PutHotSpot($xpos) if defined($mark); } 1; ######################################################################## ### Emacs settings # Local Variables: # mode: CPerl # End:
Close