Hacking with python system basics

$python
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, os
>>> len(dir(sys))
69
>>> len(dir(os))
235
>>> len(dir(os.oath))
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'module' object has no attribute 'oath'
>>> len(dir(os.path))
53
>>> dir(os)
['EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', 'EX_NOUSER', 'EX_OK', 'EX_OSERR', 'EX_OSFILE', 'EX_PROTOCOL', 'EX_SOFTWARE', 'EX_TEMPFAIL', 'EX_UNAVAILABLE', 'EX_USAGE', 'F_OK', 'NGROUPS_MAX', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_DIRECT', 'O_DIRECTORY', 'O_DSYNC', 'O_EXCL', 'O_LARGEFILE', 'O_NDELAY', 'O_NOATIME', 'O_NOCTTY', 'O_NOFOLLOW', 'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_RSYNC', 'O_SYNC', 'O_TRUNC', 'O_WRONLY', 'P_NOWAIT', 'P_NOWAITO', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'ST_APPEND', 'ST_MANDLOCK', 'ST_NOATIME', 'ST_NODEV', 'ST_NODIRATIME', 'ST_NOEXEC', 'ST_NOSUID', 'ST_RDONLY', 'ST_RELATIME', 'ST_SYNCHRONOUS', 'ST_WRITE', 'TMP_MAX', 'UserDict', 'WCONTINUED', 'WCOREDUMP', 'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED', 'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', '_spawnvef', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'close', 'closerange', 'confstr', 'confstr_names', 'ctermid', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fchdir', 'fchmod', 'fchown', 'fdatasync', 'fdopen', 'fork', 'forkpty', 'fpathconf', 'fstat', 'fstatvfs', 'fsync', 'ftruncate', 'getcwd', 'getcwdu', 'getegid', 'getenv', 'geteuid', 'getgid', 'getgroups', 'getloadavg', 'getlogin', 'getpgid', 'getpgrp', 'getpid', 'getppid', 'getresgid', 'getresuid', 'getsid', 'getuid', 'initgroups', 'isatty', 'kill', 'killpg', 'lchown', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'major', 'makedev', 'makedirs', 'minor', 'mkdir', 'mkfifo', 'mknod', 'name', 'nice', 'open', 'openpty', 'pardir', 'path', 'pathconf', 'pathconf_names', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'setegid', 'seteuid', 'setgid', 'setgroups', 'setpgid', 'setpgrp', 'setregid', 'setresgid', 'setresuid', 'setreuid', 'setsid', 'setuid', 'spawnl', 'spawnle', 'spawnlp', 'spawnlpe', 'spawnv', 'spawnve', 'spawnvp', 'spawnvpe', 'stat', 'stat_float_times', 'stat_result', 'statvfs', 'statvfs_result', 'strerror', 'symlink', 'sys', 'sysconf', 'sysconf_names', 'system', 'tcgetpgrp', 'tcsetpgrp', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'ttyname', 'umask', 'uname', 'unlink', 'unsetenv', 'urandom', 'utime', 'wait', 'wait3', 'wait4', 'waitpid', 'walk', 'write']
>>> 

Hacking with strace on ls

$ls
1
$strace ls
execve("/bin/ls", ["ls"], [/* 38 vars */]) = 0
brk(0)                                  = 0x7ae000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab18000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=136302, ...}) = 0
mmap(NULL, 136302, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fb78aae8000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20c\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=142728, ...}) = 0
mmap(NULL, 2246896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb78a6c8000
mprotect(0x7fb78a6e9000, 2097152, PROT_NONE) = 0
mmap(0x7fb78a8e9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21000) = 0x7fb78a8e9000
mmap(0x7fb78a8eb000, 6384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb78a8eb000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=35288, ...}) = 0
mmap(NULL, 2130592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb78a4b8000
mprotect(0x7fb78a4c0000, 2093056, PROT_NONE) = 0
mmap(0x7fb78a6bf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7fb78a6bf000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1729984, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab17000
mmap(NULL, 3836448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb78a108000
mprotect(0x7fb78a2a7000, 2097152, PROT_NONE) = 0
mmap(0x7fb78a4a7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19f000) = 0x7fb78a4a7000
mmap(0x7fb78a4ad000, 14880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb78a4ad000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\27\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=448440, ...}) = 0
mmap(NULL, 2543976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789e98000
mprotect(0x7fb789f04000, 2097152, PROT_NONE) = 0
mmap(0x7fb78a104000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6c000) = 0x7fb78a104000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14664, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789c90000
mprotect(0x7fb789c93000, 2093056, PROT_NONE) = 0
mmap(0x7fb789e92000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fb789e92000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=18640, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab16000
mmap(NULL, 2113912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789a88000
mprotect(0x7fb789a8c000, 2093056, PROT_NONE) = 0
mmap(0x7fb789c8b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fb789c8b000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20o\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=137440, ...}) = 0
mmap(NULL, 2213008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb789868000
mprotect(0x7fb789880000, 2093056, PROT_NONE) = 0
mmap(0x7fb789a7f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fb789a7f000
mmap(0x7fb789a81000, 13456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb789a81000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab15000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab13000
arch_prctl(ARCH_SET_FS, 0x7fb78ab13800) = 0
mprotect(0x7fb78a4a7000, 16384, PROT_READ) = 0
mprotect(0x7fb789a7f000, 4096, PROT_READ) = 0
mprotect(0x7fb789c8b000, 4096, PROT_READ) = 0
mprotect(0x7fb789e92000, 4096, PROT_READ) = 0
mprotect(0x7fb78a104000, 4096, PROT_READ) = 0
mprotect(0x7fb78a6bf000, 4096, PROT_READ) = 0
mprotect(0x7fb78a8e9000, 4096, PROT_READ) = 0
mprotect(0x61b000, 4096, PROT_READ)     = 0
mprotect(0x7fb78ab10000, 4096, PROT_READ) = 0
munmap(0x7fb78aae8000, 136302)          = 0
set_tid_address(0x7fb78ab13ad0)         = 3887
set_robust_list(0x7fb78ab13ae0, 24)     = 0
rt_sigaction(SIGRTMIN, {0x7fb78986e9f0, [], SA_RESTORER|SA_SIGINFO, 0x7fb7898778d0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7fb78986ea80, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fb7898778d0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
statfs("/sys/fs/selinux", 0x7fffb8555110) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7fffb8555110)      = -1 ENOENT (No such file or directory)
brk(0)                                  = 0x7ae000
brk(0x7cf000)                           = 0x7cf000
open("/proc/filesystems", O_RDONLY)     = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab0f000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 344
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x7fb78ab0f000, 4096)            = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1607936, ...}) = 0
mmap(NULL, 1607936, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fb78a980000
close(3)                                = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=40, ws_col=126, ws_xpixel=0, ws_ypixel=0}) = 0
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 3 entries */, 32768)     = 72
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb78ab0f000
write(1, "1\n", 21
)                      = 2
close(1)                                = 0
munmap(0x7fb78ab0f000, 4096)            = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++
$

Examining an ELF binary with binutils

$strings a.out
/lib64/ld-linux-x86-64.so.2
libc.so.6
printf
__libc_start_main
__gmon_start__
GLIBC_2.2.5
fffff.
[]A\A]A^A_
hello
;*3$"
GCC: (Debian 4.9.2-10) 4.9.2
GCC: (Debian 4.8.3-13) 4.8.3
hello.c
long unsigned int
short unsigned int
short int
GNU C 4.9.2 -mtune=generic -march=x86-64 -g
unsigned char
long int
sizetype
main
hello.c
/home/jeffrin
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.jcr
.dynamic
.got
.got.plt
.data
.bss
.comment
.debug_aranges
.debug_info
.debug_abbrev
.debug_line
.debug_str
crtstuff.c
__JCR_LIST__
deregister_tm_clones
register_tm_clones
__do_global_dtors_aux
completed.6661
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
hello.c
__FRAME_END__
__JCR_END__
__init_array_end
_DYNAMIC
__init_array_start
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
data_start
_edata
_fini
printf@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
_end
_start
__bss_start
main
_Jv_RegisterClasses
__TMC_END__
_ITM_registerTMCloneTable
_init
$

6 Framed photos was added to the collection

6 Framed photos was added to the collection
4 small ones and 2 relatively bigger ones
All the photos are related to NATIONAL GEOGRAPHIC
Hacking with listing local system locks

File locking is a mechanism that restricts access to a computer file
by allowing only one user or process access at any specific time.
Systems implement locking to prevent the classic interceding update
scenario (see race condition).



lslocks lists information about all the currently held file locks in a Linux system.


$lslocks -p 23897
$lslocks -p 1404
$lslocks -p 15099
$lslocks -p 17229
COMMAND           PID  TYPE SIZE MODE  M      START        END PATH
chromium        17229 POSIX  68K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Web Data
chromium        17229 POSIX   0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Local Extension Settings
chromium        17229 POSIX 140K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/History
chromium        17229 POSIX 1.5M WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Favicons
chromium        17229 POSIX  20K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Shortcuts
chromium        17229 POSIX  12K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Login Data
chromium        17229 POSIX   0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Extension Rules/LOCK
chromium        17229 POSIX   0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/File System/Origins/LOCK
chromium        17229 POSIX   0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Session Storage/LOCK
chromium        17229 POSIX   0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Extension State/LOCK
$lslocks 
COMMAND           PID  TYPE  SIZE MODE  M      START        END PATH
atd               580 POSIX    0B WRITE 0          0          0 /run
cron              614 FLOCK    0B WRITE 0          0          0 /run
tracker-miner-f  1505 POSIX 27.1M READ  0 1073741826 1073742335 /home/jeffrin/.cache/tracker/meta.db
tracker-miner-f  1505 POSIX   32K READ  0        128        128 /home/jeffrin/.cache/tracker/meta.db-shm
chromium        17229 POSIX   68K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Web Data
chromium        17229 POSIX    0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Local Extension Setting
chromium        17229 POSIX  140K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/History
chromium        17229 POSIX  1.5M WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Favicons
chromium        17229 POSIX   20K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Shortcuts
chromium        17229 POSIX   12K WRITE 0 1073741824 1073742335 /home/jeffrin/.config/chromium/Default/Login Data
(unknown)         543 FLOCK    0B WRITE 0          0          0 /run
lpd               594 FLOCK    0B WRITE 0          0          0 /run
runsv             670 FLOCK    0B WRITE 0          0          0 /
tracker-store    1512 POSIX 27.1M READ  0 1073741826 1073742335 /home/jeffrin/.cache/tracker/meta.db
tracker-store    1512 POSIX   32K READ  0        128        128 /home/jeffrin/.cache/tracker/meta.db-shm
chromium        17229 POSIX    0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Extension Rules/LOCK
chromium        17229 POSIX    0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/File System/Origins/LOC
chromium        17229 POSIX    0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Session Storage/LOCK
chromium        17229 POSIX    0B WRITE 0          0          0 /home/jeffrin/.config/chromium/Default/Extension State/LOCK
$

Hacking with an arbitrary precision calculator

dc  is a reverse-polish desk calculator which supports unlimited preci‐
sion arithmetic.  It also allows you to define and call  macros.   Nor‐
mally  dc  reads  from the standard input; if any command arguments are
given to it, they are filenames, and dc reads and executes the contents
of  the files before reading from standard input.  All normal output is
to standard output; all error output is to standard error.

A reverse-polish calculator stores numbers on a stack.  Entering a num‐
ber  pushes  it  on the stack.  Arithmetic operations pop arguments off
the stack and push the results.

To enter a number in dc, type the digits (using upper  case  letters  A
through  F as "digits" when working with input bases greater than ten),
with an optional decimal point.  Exponential notation is not supported.
To  enter a negative number, begin the number with ``_''.  ``-'' cannot
be used for this, as it is a binary operator for  subtraction  instead.
To  enter  two numbers in succession, separate them with spaces or new‐
lines.  These have no meaning as commands.





$dc
1234
f
1234
2322
f
2322
1234
p * 2
2322
f
2
2865348
f
2
2865348
2 * p
4
f
4
2865348
p * 1
4
p
1
p
1
f
1
11461392
dc:
dc: stack empty
f
$




Copyright © 2009,  2010,  2011,  2012,  2013, 2014, 2015     BeautifulWork Project    e-mail:  ahiliation@yahoo.co.in
BeautifulWork Project comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.