ia64/xen-unstable
changeset 3762:0a4b76b6b5a0
bitkeeper revision 1.1161 (420b5ed6DpcotfvpA5TTxShadFd_MQ)
Merge with non-ancient version of Xen.
Merge with non-ancient version of Xen.
line diff
1.1 --- a/.hgtags Fri Aug 06 12:20:20 2004 +0000 1.2 +++ b/.hgtags Thu Feb 10 13:17:10 2005 +0000 1.3 @@ -1,6 +1,11 @@ 1.4 +42882b3e0dda89f3a8ec00da568f86e9b3c230f1 RELEASE-2.0.0 1.5 +475a162b66e2c19b1e9468b234a4ba705334905e RELEASE-2.0.1 1.6 +dc2f08429f17e6614fd2f1ab88cc09ca0a850f32 RELEASE-2.0.2 1.7 +6e1bbc13911751efa0b1c018425c1b085820fa02 RELEASE-2.0.3 1.8 +fb875591fd72e15c31879c0e9034d99b80225595 RELEASE-2.0.4 1.9 487b2ee37d1cecb5f3e7a546b05ad097a0226f2f beta1 1.10 3d330e41f41ce1bc118c02346e18949ad5d67f6b latest-semistable 1.11 30c521db4c71960b0cf1d9c9e1b658e77b535a3e latest-stable 1.12 -7ae55a8c64e4eafacc6907232fa0f45a5c15becb semistable 1.13 +9afec5bc14aeb197ef37ea54a57eacd427463fc3 semistable 1.14 30c521db4c71960b0cf1d9c9e1b658e77b535a3e split-1.0 1.15 3d330e41f41ce1bc118c02346e18949ad5d67f6b split-1.1
2.1 --- a/.rootkeys Fri Aug 06 12:20:20 2004 +0000 2.2 +++ b/.rootkeys Thu Feb 10 13:17:10 2005 +0000 2.3 @@ -2,23 +2,26 @@ 3ddb6b0bKlMz_dz-M59a1mkUa1lASw BitKeeper 2.4 3eba336c4BUxP3H1DjQl8sInORf1Yw BitKeeper/etc/gone 2.5 3ddb6b0buTaC5zg1_a8FoAR9FWi_mw BitKeeper/etc/ignore 2.6 3ddb79c9_hgSp-gsQm8HqWM_9W3B_A BitKeeper/etc/logging_ok 2.7 +4177dbbfqsi01p2zgZa0geUOgScONw COPYING 2.8 3eb788d6Kleck_Cut0ouGneviGzliQ Makefile 2.9 3f5ef5a24IaQasQE2tyMxrfxskMmvw README 2.10 -3f5ef5a2l4kfBYSQTUaOyyD76WROZQ README.CD 2.11 -3f69d8abYB1vMyD_QVDvzxy5Zscf1A TODO 2.12 -405ef604hIZH5pGi2uwlrlSvUMrutw docs/HOWTOs/Console-HOWTO 2.13 -4083e798FbE1MIsQaIYvjnx1uvFhBg docs/HOWTOs/Sched-HOWTO 2.14 -40083bb4LVQzRqA3ABz0__pPhGNwtA docs/HOWTOs/VBD-HOWTO 2.15 -4021053fmeFrEyPHcT8JFiDpLNgtHQ docs/HOWTOs/Xen-HOWTO 2.16 -4022a73cgxX1ryj1HgS-IwwB6NUi2A docs/HOWTOs/XenDebugger-HOWTO 2.17 +41880852AtdVfSsfKGtrLdajX1vEXQ buildconfigs/Rules.mk 2.18 +41880852oSxvHJSmnzI6hlpFvHuQqQ buildconfigs/mk.linux-2.4-xen0 2.19 +41880852YWbPAO-cofTsGkFW1x7tGw buildconfigs/mk.linux-2.4-xenU 2.20 +41880852Cwk_14PhDA9XZToJ5B2iMQ buildconfigs/mk.linux-2.6-xen0 2.21 +41880852siMCKilMpoBLtpP_bhYC2Q buildconfigs/mk.linux-2.6-xenU 2.22 +4188d881_D8HpHnhHabA46_ycKwQyw buildconfigs/mk.netbsd-2.0-xenU 2.23 3f9e7d53iC47UnlfORp9iC1vai6kWw docs/Makefile 2.24 -3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/eps/xenlogo.eps 2.25 -3f9e7d63lTwQbp2fnx7yY93epWS-eQ docs/figs/dummy 2.26 -3f9e7d564bWFB-Czjv1qdmE6o0GqNg docs/interface.tex 2.27 -3f9e7d58t7N6hjjBMxSn-NMxBphchA docs/style.tex 2.28 -410144afnSd2Yw68AHGO5gXu2m3y6A docs/user.tex 2.29 -40d6ccbfKKBq8jE0ula4eHEzBiQuDA docs/xen_config.html 2.30 -3f9e7d5bz8BwYkNuwyiPVu7JJG441A docs/xenstyle.cls 2.31 +4187c1c7IWmBinGdI19kL4MuZ6RLbQ docs/check_pkgs 2.32 +3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/figs/xenlogo.eps 2.33 +418a3248xjIqmNKo0v_XQSfAvlBGFw docs/html.sty 2.34 +41c0c4116itF389v0CEWcmzue6zJkA docs/misc/VMX_changes.txt 2.35 +4022a73cgxX1ryj1HgS-IwwB6NUi2A docs/misc/XenDebugger-HOWTO 2.36 +412f4bd9sm5mCQ8BkrgKcAKZGadq7Q docs/misc/blkif-drivers-explained.txt 2.37 +40d6ccbfKKBq8jE0ula4eHEzBiQuDA docs/misc/xen_config.html 2.38 +410a4c2bAO_m_l4RsiiPHnZ4ixHWbQ docs/misc/xend.tex 2.39 +3f9e7d564bWFB-Czjv1qdmE6o0GqNg docs/src/interface.tex 2.40 +410144afnSd2Yw68AHGO5gXu2m3y6A docs/src/user.tex 2.41 3f815144d1vI2777JI-dO4wk49Iw7g extras/mini-os/Makefile 2.42 3f815144zTnCV5591ulIJQrpe5b-5Q extras/mini-os/README 2.43 3f815144wiiDekmfMl9LIPIvhR83Uw extras/mini-os/entry.S 2.44 @@ -41,217 +44,496 @@ 3f815145AYE58Kpmsj5U7oHDpVDZJA extras/mi 2.45 3f815145CB8XdPUqsmhAjSDFuwOoqA extras/mini-os/mm.c 2.46 3f815145vGYx1WY79voKkZB9yKwJKQ extras/mini-os/time.c 2.47 3f815145xlKBAQmal9oces3G_Mvxqw extras/mini-os/traps.c 2.48 -3e5a4e6589G-U42lFKs43plskXoFxQ linux-2.4.26-xen-sparse/Makefile 2.49 -3e5a4e65IEPjnWPZ5w3TxS5scV8Ewg linux-2.4.26-xen-sparse/arch/xen/Makefile 2.50 -3e5a4e65n-KhsEAs-A4ULiStBp-r6w linux-2.4.26-xen-sparse/arch/xen/boot/Makefile 2.51 -3e5a4e65OV_j_DBtjzt5vej771AJsA linux-2.4.26-xen-sparse/arch/xen/config.in 2.52 -40648526SxcA4lGIHB_k7ID8VlRSzw linux-2.4.26-xen-sparse/arch/xen/defconfig-xen0 2.53 -40c73c77QesbL7eIvG-fJGAtVwhGRg linux-2.4.26-xen-sparse/arch/xen/defconfig-xenU 2.54 -3e6377f5xwPfYZkPHPrDbEq1PRN7uQ linux-2.4.26-xen-sparse/arch/xen/drivers/balloon/Makefile 2.55 -3e6377f8Me8IqtvEhb70XFgOvqQH7A linux-2.4.26-xen-sparse/arch/xen/drivers/balloon/balloon.c 2.56 -4083dc16z0jvZEH4PiVDbDRreaNp6w linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/Makefile 2.57 -4083dc16KQus88a4U3uCV6qVCA6_8Q linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/Makefile 2.58 -4075806dI5kfeMD5RV-DA0PYoThx_w linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/Makefile 2.59 -4075806d4-j7vN0Mn0bklI1cRUX1vQ linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/common.h 2.60 -4075806d3fJqqDC1pYYPTZPc575iKg linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c 2.61 -4075806dibjCcfuXv6CINMhxWTw3jQ linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c 2.62 -3e5a4e65G3e2s0ghPMgiJ-gBTUJ0uQ linux-2.4.26-xen-sparse/arch/xen/drivers/console/Makefile 2.63 -3e5a4e656nfFISThfbyXQOA6HN6YHw linux-2.4.26-xen-sparse/arch/xen/drivers/dom0/Makefile 2.64 -40420a6ebRqDjufoN1WSJvolEW2Wjw linux-2.4.26-xen-sparse/arch/xen/drivers/evtchn/Makefile 2.65 -4083dc16-Kd5y9psK_yk161sme5j5Q linux-2.4.26-xen-sparse/arch/xen/drivers/netif/Makefile 2.66 -4083dc16UmHXxS9g_UFVnkUpN-oP2Q linux-2.4.26-xen-sparse/arch/xen/drivers/netif/backend/Makefile 2.67 -405853f2wg7JXZJNltspMwOZJklxgw linux-2.4.26-xen-sparse/arch/xen/drivers/netif/frontend/Makefile 2.68 -3e5a4e65lWzkiPXsZdzPt2RNnJGG1g linux-2.4.26-xen-sparse/arch/xen/kernel/Makefile 2.69 -3e5a4e65_hqfuxtGG8IUy6wRM86Ecg linux-2.4.26-xen-sparse/arch/xen/kernel/entry.S 2.70 -3e5a4e65Hy_1iUvMTPsNqGNXd9uFpg linux-2.4.26-xen-sparse/arch/xen/kernel/head.S 2.71 -3e5a4e65RMGcuA-HCn3-wNx3fFQwdg linux-2.4.26-xen-sparse/arch/xen/kernel/i386_ksyms.c 2.72 -3e5a4e653U6cELGv528IxOLHvCq8iA linux-2.4.26-xen-sparse/arch/xen/kernel/irq.c 2.73 -3e5a4e65muT6SU3ck47IP87Q7Ti5hA linux-2.4.26-xen-sparse/arch/xen/kernel/ldt.c 2.74 -4051db95N9N99FjsRwi49YKUNHWI8A linux-2.4.26-xen-sparse/arch/xen/kernel/pci-pc.c 2.75 -3e5a4e65IGt3WwQDNiL4h-gYWgNTWQ linux-2.4.26-xen-sparse/arch/xen/kernel/process.c 2.76 -3e5a4e66tR-qJMLj3MppcKqmvuI2XQ linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c 2.77 -3e5a4e66fWSTagLGU2P8BGFGRjhDiw linux-2.4.26-xen-sparse/arch/xen/kernel/signal.c 2.78 -3e5a4e66N__lUXNwzQ-eADRzK9LXuQ linux-2.4.26-xen-sparse/arch/xen/kernel/time.c 2.79 -3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ linux-2.4.26-xen-sparse/arch/xen/kernel/traps.c 2.80 -3e5a4e66-9_NczrVMbuQkoSLyXckIw linux-2.4.26-xen-sparse/arch/xen/lib/Makefile 2.81 -3e5a4e6637ZDk0BvFEC-aFQs599-ng linux-2.4.26-xen-sparse/arch/xen/lib/delay.c 2.82 -3e5a4e66croVgpcJyJuF2ycQw0HuJw linux-2.4.26-xen-sparse/arch/xen/mm/Makefile 2.83 -3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg linux-2.4.26-xen-sparse/arch/xen/mm/fault.c 2.84 -3e5a4e661gLzzff25pJooKIIWe7IWg linux-2.4.26-xen-sparse/arch/xen/mm/init.c 2.85 -3f0bed43UUdQichXAiVNrjV-y2Kzcg linux-2.4.26-xen-sparse/arch/xen/mm/ioremap.c 2.86 -3e5a4e66qRlSTcjafidMB6ulECADvg linux-2.4.26-xen-sparse/arch/xen/vmlinux.lds 2.87 -3e5a4e66mrtlmV75L1tjKDg8RaM5gA linux-2.4.26-xen-sparse/drivers/block/ll_rw_blk.c 2.88 -40d70c24-Dy2HUMrwSZagfXvAPnI4w linux-2.4.26-xen-sparse/drivers/char/Makefile 2.89 -3f108aeaLcGDgQdFAANLTUEid0a05w linux-2.4.26-xen-sparse/drivers/char/mem.c 2.90 -3e5a4e66rw65CxyolW9PKz4GG42RcA linux-2.4.26-xen-sparse/drivers/char/tty_io.c 2.91 -40c9c0c1pPwYE3-4i-oI3ubUu7UgvQ linux-2.4.26-xen-sparse/drivers/scsi/aic7xxx/Makefile 2.92 -3e5a4e669uzIE54VwucPYtGwXLAbzA linux-2.4.26-xen-sparse/fs/exec.c 2.93 -3e5a4e66wbeCpsJgVf_U8Jde-CNcsA linux-2.4.26-xen-sparse/include/asm-xen/bugs.h 2.94 -3e5a4e66HdSkvIV6SJ1evG_xmTmXHA linux-2.4.26-xen-sparse/include/asm-xen/desc.h 2.95 -3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw linux-2.4.26-xen-sparse/include/asm-xen/fixmap.h 2.96 -406aeeaaQvl4RNtmd9hDEugBURbFpQ linux-2.4.26-xen-sparse/include/asm-xen/highmem.h 2.97 -3e5a4e67YtcyDLQsShhCfQwPSELfvA linux-2.4.26-xen-sparse/include/asm-xen/hw_irq.h 2.98 -4060044fVx7-tokvNLKBf_6qBB4lqQ linux-2.4.26-xen-sparse/include/asm-xen/io.h 2.99 -3e5a4e673p7PEOyHFm3nHkYX6HQYBg linux-2.4.26-xen-sparse/include/asm-xen/irq.h 2.100 -40d70c240tW7TWArl1VUgIFH2nVO1A linux-2.4.26-xen-sparse/include/asm-xen/keyboard.h 2.101 -3e5a4e678ddsQOpbSiRdy1GRcDc9WA linux-2.4.26-xen-sparse/include/asm-xen/mmu_context.h 2.102 -40d06e5b2YWInUX1Xv9amVANwd_2Xg linux-2.4.26-xen-sparse/include/asm-xen/module.h 2.103 -3f8707e7ZmZ6TxyX0ZUEfvhA2Pb_xQ linux-2.4.26-xen-sparse/include/asm-xen/msr.h 2.104 -3e5a4e67mnQfh-R8KcQCaVo2Oho6yg linux-2.4.26-xen-sparse/include/asm-xen/page.h 2.105 -409ba2e7ZfV5hqTvIzxLtpClnxtIzg linux-2.4.26-xen-sparse/include/asm-xen/pci.h 2.106 -3e5a4e67uTYU5oEnIDjxuaez8njjqg linux-2.4.26-xen-sparse/include/asm-xen/pgalloc.h 2.107 -3e5a4e67X7JyupgdYkgDX19Huj2sAw linux-2.4.26-xen-sparse/include/asm-xen/pgtable-2level.h 2.108 -3e5a4e67gr4NLGtQ5CvSLimMYZlkOA linux-2.4.26-xen-sparse/include/asm-xen/pgtable.h 2.109 -3e5a4e676uK4xErTBDH6XJREn9LSyg linux-2.4.26-xen-sparse/include/asm-xen/processor.h 2.110 -3e5a4e67AJPjW-zL7p-xWuA6IVeH1g linux-2.4.26-xen-sparse/include/asm-xen/ptrace.h 2.111 -3e5a4e68uJz-xI0IBVMD7xRLQKJDFg linux-2.4.26-xen-sparse/include/asm-xen/segment.h 2.112 -3e5a4e68Nfdh6QcOKUTGCaYkf2LmYA linux-2.4.26-xen-sparse/include/asm-xen/smp.h 2.113 -4062f7e2PzFOUGT0PaE7A0VprTU3JQ linux-2.4.26-xen-sparse/include/asm-xen/synch_bitops.h 2.114 -3e5a4e68mTr0zcp9SXDbnd-XLrrfxw linux-2.4.26-xen-sparse/include/asm-xen/system.h 2.115 -3f1056a9L_kqHcFheV00KbKBzv9j5w linux-2.4.26-xen-sparse/include/asm-xen/vga.h 2.116 -40659defgWA92arexpMGn8X3QMDj3w linux-2.4.26-xen-sparse/include/asm-xen/xor.h 2.117 -3f056927gMHl7mWB89rb73JahbhQIA linux-2.4.26-xen-sparse/include/linux/blk.h 2.118 -401c0590D_kwJDU59X8NyvqSv_Cl2A linux-2.4.26-xen-sparse/include/linux/sched.h 2.119 -40a248afgI0_JKthdYAe8beVfXSTpQ linux-2.4.26-xen-sparse/include/linux/skbuff.h 2.120 -401c0592pLrp_aCbQRo9GXiYQQaVVA linux-2.4.26-xen-sparse/include/linux/timer.h 2.121 -3f9d4b44247udoqWEgFkaHiWv6Uvyg linux-2.4.26-xen-sparse/kernel/time.c 2.122 -401c059bjLBFYHRD4Py2uM3eA1D4zQ linux-2.4.26-xen-sparse/kernel/timer.c 2.123 -3e6e7c1efbQe93xCvOpOVCnXTMmQ5w linux-2.4.26-xen-sparse/mkbuildtree 2.124 -406aeeafkrnCuIVWLFv3kfn4uAD5Eg linux-2.4.26-xen-sparse/mm/highmem.c 2.125 -3e5a4e68GxCIaFH4sy01v1wjapetaA linux-2.4.26-xen-sparse/mm/memory.c 2.126 -3f108af5VxPkLv13tXpXgoRKALQtXQ linux-2.4.26-xen-sparse/mm/mprotect.c 2.127 -3e5a4e681xMPdF9xCMwpyfuYMySU5g linux-2.4.26-xen-sparse/mm/mremap.c 2.128 -409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4.26-xen-sparse/mm/page_alloc.c 2.129 -3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.26-xen-sparse/mm/swapfile.c 2.130 -40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.7-xen-sparse/arch/xen/Kconfig 2.131 -40f56237utH41NPukqHksuNf29IC9A linux-2.6.7-xen-sparse/arch/xen/Kconfig.drivers 2.132 -40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.7-xen-sparse/arch/xen/Makefile 2.133 -40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.7-xen-sparse/arch/xen/boot/Makefile 2.134 -40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.7-xen-sparse/arch/xen/configs/xen0_defconfig 2.135 -40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.7-xen-sparse/arch/xen/configs/xenU_defconfig 2.136 -40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.7-xen-sparse/arch/xen/i386/Kconfig 2.137 -40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.7-xen-sparse/arch/xen/i386/Makefile 2.138 -40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.7-xen-sparse/arch/xen/i386/kernel/Makefile 2.139 -40f56238rXVTJQKbBuXXLH52qEArcg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/cpu/Makefile 2.140 -40f562385s4lr6Zg92gExe7UQ4A76Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/cpu/common.c 2.141 -40f56238XDtHSijkAFlbv1PT8Bhw_Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/entry.S 2.142 -40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.7-xen-sparse/arch/xen/i386/kernel/head.S 2.143 -40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c 2.144 -40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/ioport.c 2.145 -40f562382aC3_Gt4RG-4ZsfvDRUg3Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/irq.c 2.146 -40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.7-xen-sparse/arch/xen/i386/kernel/ldt.c 2.147 -4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/pci-dma.c 2.148 -40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.7-xen-sparse/arch/xen/i386/kernel/process.c 2.149 -40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/setup.c 2.150 -40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/signal.c 2.151 -40f56238UL9uv78ODDzMwLL9yryeFw linux-2.6.7-xen-sparse/arch/xen/i386/kernel/sysenter.c 2.152 -40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/time.c 2.153 -40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.7-xen-sparse/arch/xen/i386/kernel/timers/Makefile 2.154 -40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.7-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c 2.155 -40f562389xNa78YBZciUibQjyRU_Lg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/traps.c 2.156 -40f56238qASEI_IOhCKWNuwFKNZrKQ linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vmlinux.lds.S 2.157 -40f56238JypKAUG01ZojFwH7qnZ5uA linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vsyscall.S 2.158 -40f56238wi6AdNQjm0RT57bSkwb6hg linux-2.6.7-xen-sparse/arch/xen/i386/kernel/vsyscall.lds 2.159 -40f56238a3w6-byOzexIlMgni76Lcg linux-2.6.7-xen-sparse/arch/xen/i386/mm/Makefile 2.160 -40f56238ILx8xlbywNbzTdv5Zr4xXQ linux-2.6.7-xen-sparse/arch/xen/i386/mm/fault.c 2.161 -40f562383SKvDStdtrvzr5fyCbW4rw linux-2.6.7-xen-sparse/arch/xen/i386/mm/hypervisor.c 2.162 -40f56239xcNylAxuGsQHwi1AyMLV8w linux-2.6.7-xen-sparse/arch/xen/i386/mm/init.c 2.163 -41062ab7CjxC1UBaFhOMWWdhHkIUyg linux-2.6.7-xen-sparse/arch/xen/i386/mm/ioremap.c 2.164 -40f5623906UYHv1rsVUeRc0tFT0dWw linux-2.6.7-xen-sparse/arch/xen/i386/mm/pgtable.c 2.165 -4107adf12ndy94MidCaivDibJ3pPAg linux-2.6.7-xen-sparse/arch/xen/i386/pci/Makefile 2.166 -4107adf1WcCgkhsdLTRGX52cOG1vJg linux-2.6.7-xen-sparse/arch/xen/i386/pci/direct.c 2.167 -4107adf1s5u6249DNPUViX1YNagbUQ linux-2.6.7-xen-sparse/arch/xen/i386/pci/irq.c 2.168 -40f56239zOksGg_H4XD4ye6iZNtoZA linux-2.6.7-xen-sparse/arch/xen/kernel/Makefile 2.169 -40f56239bvOjuuuViZ0XMlNiREFC0A linux-2.6.7-xen-sparse/arch/xen/kernel/ctrl_if.c 2.170 -40f56239pYRq5yshPTkv3ujXKc8K6g linux-2.6.7-xen-sparse/arch/xen/kernel/empty.c 2.171 -40f56238xFQe9T7M_U_FItM-bZIpLw linux-2.6.7-xen-sparse/arch/xen/kernel/evtchn.c 2.172 -4110f478aeQWllIN7J4kouAHiAqrPw linux-2.6.7-xen-sparse/arch/xen/kernel/fixup.c 2.173 -40f56239sFcjHiIRmnObRIDF-zaeKQ linux-2.6.7-xen-sparse/arch/xen/kernel/process.c 2.174 -40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.7-xen-sparse/arch/xen/kernel/reboot.c 2.175 -3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.7-xen-sparse/arch/xen/kernel/xen_proc.c 2.176 -4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.7-xen-sparse/drivers/char/mem.c 2.177 -4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.7-xen-sparse/drivers/char/tty_io.c 2.178 -40f56239Dp_vMTgz8TEbvo1hjHGc3w linux-2.6.7-xen-sparse/drivers/xen/Makefile 2.179 -410d0893otFGghmv4dUXDUBBdY5aIA linux-2.6.7-xen-sparse/drivers/xen/blkback/Makefile 2.180 -4087cf0d1XgMkooTZAiJS6NrcpLQNQ linux-2.6.7-xen-sparse/drivers/xen/blkback/blkback.c 2.181 -4087cf0dZadZ8r6CEt4fNN350Yle3A linux-2.6.7-xen-sparse/drivers/xen/blkback/common.h 2.182 -4087cf0dxlh29iw0w-9rxOCEGCjPcw linux-2.6.7-xen-sparse/drivers/xen/blkback/control.c 2.183 -4087cf0dbuoH20fMjNZjcgrRK-1msQ linux-2.6.7-xen-sparse/drivers/xen/blkback/interface.c 2.184 -4087cf0dk97tacDzxfByWV7JifUYqA linux-2.6.7-xen-sparse/drivers/xen/blkback/vbd.c 2.185 -40f56239Sfle6wGv5FS0wjS_HI150A linux-2.6.7-xen-sparse/drivers/xen/blkfront/Kconfig 2.186 -40f562395atl9x4suKGhPkjqLOXESg linux-2.6.7-xen-sparse/drivers/xen/blkfront/Makefile 2.187 -40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.7-xen-sparse/drivers/xen/blkfront/blkfront.c 2.188 -40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.7-xen-sparse/drivers/xen/blkfront/block.h 2.189 -40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.7-xen-sparse/drivers/xen/blkfront/vbd.c 2.190 -40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.7-xen-sparse/drivers/xen/console/Makefile 2.191 -3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.7-xen-sparse/drivers/xen/console/console.c 2.192 -40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.7-xen-sparse/drivers/xen/evtchn/Makefile 2.193 -40f56239DoibTX6R-ZYd3QTXAB8_TA linux-2.6.7-xen-sparse/drivers/xen/evtchn/evtchn.c 2.194 -410a9817HEVJvred5Oy_uKH3HFJC5Q linux-2.6.7-xen-sparse/drivers/xen/netback/Makefile 2.195 -4097ba831lpGeLlPg-bfV8XarVVuoQ linux-2.6.7-xen-sparse/drivers/xen/netback/common.h 2.196 -4097ba83wvv8yi5P5xugCUBAdb6O-A linux-2.6.7-xen-sparse/drivers/xen/netback/control.c 2.197 -4097ba83byY5bTSugJGZ1exTxIcMKw linux-2.6.7-xen-sparse/drivers/xen/netback/interface.c 2.198 -4087cf0dGmSbFhFZyIZBJzvqxY-qBw linux-2.6.7-xen-sparse/drivers/xen/netback/netback.c 2.199 -40f56239lrg_Ob0BJ8WBFS1zeg2CYw linux-2.6.7-xen-sparse/drivers/xen/netfront/Kconfig 2.200 -40f56239Wd4k_ycG_mFsSO1r5xKdtQ linux-2.6.7-xen-sparse/drivers/xen/netfront/Makefile 2.201 -405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c 2.202 -4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.7-xen-sparse/drivers/xen/privcmd/Makefile 2.203 -3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.7-xen-sparse/drivers/xen/privcmd/privcmd.c 2.204 -40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/desc.h 2.205 -4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h 2.206 -40f5623anSzpuEHgiNmQ56fIRfCoaQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/e820.h 2.207 -40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/fixmap.h 2.208 -40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/io.h 2.209 -40f5623am9BzluYFuV6EQfTd-so3dA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/do_timer.h 2.210 -40f5623adZQ1IZGPxbDXONjyZGYuTA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/io_ports.h 2.211 -40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h 2.212 -40f5623aMQZoYuf4ml9v69N3gu8ing linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_mpspec.h 2.213 -40f5623a8LroVMnZ5YRzJJmIc-zHlw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_reboot.h 2.214 -40f5623an3wOvFKmpIvqSxQfWzklVQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_resources.h 2.215 -40f5623ayR1vnzfF__htza35a8Ft-g linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_time.h 2.216 -40f5623a4YdRdVzYWJzOOoqe8mnrXA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_timer.h 2.217 -40f5623aDLxmbOtUHvkWztKjAO4EjA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/mach_traps.h 2.218 -41062ab7HMSSuaUv3_Z4agLpjSO88A linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/pci-functions.h 2.219 -40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h 2.220 -40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h 2.221 -40f5623aFTyFTR-vdiA-KaGxk5JOKQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/msr.h 2.222 -40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/page.h 2.223 -40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/param.h 2.224 -40f5623atCokYc2uCysSJ8jFO8TEsw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgalloc.h 2.225 -40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h 2.226 -40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable.h 2.227 -40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/processor.h 2.228 -40f5623bvhcUmESJrtcII6Bmd61b3w linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/ptrace.h 2.229 -40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/segment.h 2.230 -40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/setup.h 2.231 -40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h 2.232 -40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/system.h 2.233 -40f5623bSgGrvrGRpD71K-lIYqaGgg linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/timer.h 2.234 -40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/tlbflush.h 2.235 -41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/vga.h 2.236 -40f5623bxUbeGjkRrjDguCy_Gm8RLw linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/xor.h 2.237 -40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.7-xen-sparse/include/asm-xen/ctrl_if.h 2.238 -40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.7-xen-sparse/include/asm-xen/evtchn.h 2.239 -40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.7-xen-sparse/include/asm-xen/hypervisor.h 2.240 -40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.7-xen-sparse/include/asm-xen/multicall.h 2.241 -3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.7-xen-sparse/include/asm-xen/proc_cmd.h 2.242 -3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.7-xen-sparse/include/asm-xen/suspend.h 2.243 -3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.7-xen-sparse/include/asm-xen/xen_proc.h 2.244 -40f56a0ddHCSs3501MY4hRf22tctOw linux-2.6.7-xen-sparse/mkbuildtree 2.245 -410a94a4KT6I6X0LVc7djB39tRDp4g linux-2.6.7-xen-sparse/mm/page_alloc.c 2.246 -40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Make.defs 2.247 +4187ca95_eQN62ugV1zliQcfzXrHnw install.sh 2.248 +3e5a4e6589G-U42lFKs43plskXoFxQ linux-2.4.29-xen-sparse/Makefile 2.249 +3e5a4e65IEPjnWPZ5w3TxS5scV8Ewg linux-2.4.29-xen-sparse/arch/xen/Makefile 2.250 +3e5a4e65n-KhsEAs-A4ULiStBp-r6w linux-2.4.29-xen-sparse/arch/xen/boot/Makefile 2.251 +3e5a4e65OV_j_DBtjzt5vej771AJsA linux-2.4.29-xen-sparse/arch/xen/config.in 2.252 +40648526SxcA4lGIHB_k7ID8VlRSzw linux-2.4.29-xen-sparse/arch/xen/defconfig-xen0 2.253 +40c73c77QesbL7eIvG-fJGAtVwhGRg linux-2.4.29-xen-sparse/arch/xen/defconfig-xenU 2.254 +3e6377f5xwPfYZkPHPrDbEq1PRN7uQ linux-2.4.29-xen-sparse/arch/xen/drivers/balloon/Makefile 2.255 +4083dc16z0jvZEH4PiVDbDRreaNp6w linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/Makefile 2.256 +4083dc16KQus88a4U3uCV6qVCA6_8Q linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/backend/Makefile 2.257 +4075806dI5kfeMD5RV-DA0PYoThx_w linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/Makefile 2.258 +4075806d4-j7vN0Mn0bklI1cRUX1vQ linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/common.h 2.259 +4075806dibjCcfuXv6CINMhxWTw3jQ linux-2.4.29-xen-sparse/arch/xen/drivers/blkif/frontend/vbd.c 2.260 +3e5a4e65G3e2s0ghPMgiJ-gBTUJ0uQ linux-2.4.29-xen-sparse/arch/xen/drivers/console/Makefile 2.261 +3e5a4e656nfFISThfbyXQOA6HN6YHw linux-2.4.29-xen-sparse/arch/xen/drivers/dom0/Makefile 2.262 +40420a6ebRqDjufoN1WSJvolEW2Wjw linux-2.4.29-xen-sparse/arch/xen/drivers/evtchn/Makefile 2.263 +4083dc16-Kd5y9psK_yk161sme5j5Q linux-2.4.29-xen-sparse/arch/xen/drivers/netif/Makefile 2.264 +4083dc16UmHXxS9g_UFVnkUpN-oP2Q linux-2.4.29-xen-sparse/arch/xen/drivers/netif/backend/Makefile 2.265 +405853f2wg7JXZJNltspMwOZJklxgw linux-2.4.29-xen-sparse/arch/xen/drivers/netif/frontend/Makefile 2.266 +41ee5e8b_2rt-qHzbDXtIoBzOli0EA linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/Makefile 2.267 +41ee5e8bUhF4tH7OoJaVbUxdXqneVw linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/backend/Makefile 2.268 +41ee5e8bSPpxzhGO6TrY20TegW3cZg linux-2.4.29-xen-sparse/arch/xen/drivers/usbif/frontend/Makefile 2.269 +3e5a4e65lWzkiPXsZdzPt2RNnJGG1g linux-2.4.29-xen-sparse/arch/xen/kernel/Makefile 2.270 +3e5a4e65_hqfuxtGG8IUy6wRM86Ecg linux-2.4.29-xen-sparse/arch/xen/kernel/entry.S 2.271 +3e5a4e65Hy_1iUvMTPsNqGNXd9uFpg linux-2.4.29-xen-sparse/arch/xen/kernel/head.S 2.272 +3e5a4e65RMGcuA-HCn3-wNx3fFQwdg linux-2.4.29-xen-sparse/arch/xen/kernel/i386_ksyms.c 2.273 +3e5a4e653U6cELGv528IxOLHvCq8iA linux-2.4.29-xen-sparse/arch/xen/kernel/irq.c 2.274 +3e5a4e65muT6SU3ck47IP87Q7Ti5hA linux-2.4.29-xen-sparse/arch/xen/kernel/ldt.c 2.275 +4051db95N9N99FjsRwi49YKUNHWI8A linux-2.4.29-xen-sparse/arch/xen/kernel/pci-pc.c 2.276 +3e5a4e65IGt3WwQDNiL4h-gYWgNTWQ linux-2.4.29-xen-sparse/arch/xen/kernel/process.c 2.277 +3e5a4e66tR-qJMLj3MppcKqmvuI2XQ linux-2.4.29-xen-sparse/arch/xen/kernel/setup.c 2.278 +3e5a4e66fWSTagLGU2P8BGFGRjhDiw linux-2.4.29-xen-sparse/arch/xen/kernel/signal.c 2.279 +3e5a4e66N__lUXNwzQ-eADRzK9LXuQ linux-2.4.29-xen-sparse/arch/xen/kernel/time.c 2.280 +3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ linux-2.4.29-xen-sparse/arch/xen/kernel/traps.c 2.281 +3e5a4e66-9_NczrVMbuQkoSLyXckIw linux-2.4.29-xen-sparse/arch/xen/lib/Makefile 2.282 +3e5a4e6637ZDk0BvFEC-aFQs599-ng linux-2.4.29-xen-sparse/arch/xen/lib/delay.c 2.283 +3e5a4e66croVgpcJyJuF2ycQw0HuJw linux-2.4.29-xen-sparse/arch/xen/mm/Makefile 2.284 +3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg linux-2.4.29-xen-sparse/arch/xen/mm/fault.c 2.285 +3e5a4e661gLzzff25pJooKIIWe7IWg linux-2.4.29-xen-sparse/arch/xen/mm/init.c 2.286 +3f0bed43UUdQichXAiVNrjV-y2Kzcg linux-2.4.29-xen-sparse/arch/xen/mm/ioremap.c 2.287 +3e5a4e66qRlSTcjafidMB6ulECADvg linux-2.4.29-xen-sparse/arch/xen/vmlinux.lds 2.288 +3e5a4e66mrtlmV75L1tjKDg8RaM5gA linux-2.4.29-xen-sparse/drivers/block/ll_rw_blk.c 2.289 +40d70c24-Dy2HUMrwSZagfXvAPnI4w linux-2.4.29-xen-sparse/drivers/char/Makefile 2.290 +3f108aeaLcGDgQdFAANLTUEid0a05w linux-2.4.29-xen-sparse/drivers/char/mem.c 2.291 +3e5a4e66rw65CxyolW9PKz4GG42RcA linux-2.4.29-xen-sparse/drivers/char/tty_io.c 2.292 +40c9c0c1pPwYE3-4i-oI3ubUu7UgvQ linux-2.4.29-xen-sparse/drivers/scsi/aic7xxx/Makefile 2.293 +41f97f64nW0wmgLxhwzPTzkF4E5ERA linux-2.4.29-xen-sparse/drivers/usb/hcd.c 2.294 +3e5a4e669uzIE54VwucPYtGwXLAbzA linux-2.4.29-xen-sparse/fs/exec.c 2.295 +3e5a4e66wbeCpsJgVf_U8Jde-CNcsA linux-2.4.29-xen-sparse/include/asm-xen/bugs.h 2.296 +3e5a4e66HdSkvIV6SJ1evG_xmTmXHA linux-2.4.29-xen-sparse/include/asm-xen/desc.h 2.297 +3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw linux-2.4.29-xen-sparse/include/asm-xen/fixmap.h 2.298 +406aeeaaQvl4RNtmd9hDEugBURbFpQ linux-2.4.29-xen-sparse/include/asm-xen/highmem.h 2.299 +3e5a4e67YtcyDLQsShhCfQwPSELfvA linux-2.4.29-xen-sparse/include/asm-xen/hw_irq.h 2.300 +4060044fVx7-tokvNLKBf_6qBB4lqQ linux-2.4.29-xen-sparse/include/asm-xen/io.h 2.301 +3e5a4e673p7PEOyHFm3nHkYX6HQYBg linux-2.4.29-xen-sparse/include/asm-xen/irq.h 2.302 +40d70c240tW7TWArl1VUgIFH2nVO1A linux-2.4.29-xen-sparse/include/asm-xen/keyboard.h 2.303 +3e5a4e678ddsQOpbSiRdy1GRcDc9WA linux-2.4.29-xen-sparse/include/asm-xen/mmu_context.h 2.304 +40d06e5b2YWInUX1Xv9amVANwd_2Xg linux-2.4.29-xen-sparse/include/asm-xen/module.h 2.305 +3e5a4e67mnQfh-R8KcQCaVo2Oho6yg linux-2.4.29-xen-sparse/include/asm-xen/page.h 2.306 +409ba2e7ZfV5hqTvIzxLtpClnxtIzg linux-2.4.29-xen-sparse/include/asm-xen/pci.h 2.307 +3e5a4e67uTYU5oEnIDjxuaez8njjqg linux-2.4.29-xen-sparse/include/asm-xen/pgalloc.h 2.308 +3e5a4e67X7JyupgdYkgDX19Huj2sAw linux-2.4.29-xen-sparse/include/asm-xen/pgtable-2level.h 2.309 +3e5a4e67gr4NLGtQ5CvSLimMYZlkOA linux-2.4.29-xen-sparse/include/asm-xen/pgtable.h 2.310 +3e5a4e676uK4xErTBDH6XJREn9LSyg linux-2.4.29-xen-sparse/include/asm-xen/processor.h 2.311 +41224663YBCUMX1kVo_HRUtgaHTi7w linux-2.4.29-xen-sparse/include/asm-xen/queues.h 2.312 +3e5a4e68uJz-xI0IBVMD7xRLQKJDFg linux-2.4.29-xen-sparse/include/asm-xen/segment.h 2.313 +3e5a4e68Nfdh6QcOKUTGCaYkf2LmYA linux-2.4.29-xen-sparse/include/asm-xen/smp.h 2.314 +4062f7e2PzFOUGT0PaE7A0VprTU3JQ linux-2.4.29-xen-sparse/include/asm-xen/synch_bitops.h 2.315 +3e5a4e68mTr0zcp9SXDbnd-XLrrfxw linux-2.4.29-xen-sparse/include/asm-xen/system.h 2.316 +3f1056a9L_kqHcFheV00KbKBzv9j5w linux-2.4.29-xen-sparse/include/asm-xen/vga.h 2.317 +40659defgWA92arexpMGn8X3QMDj3w linux-2.4.29-xen-sparse/include/asm-xen/xor.h 2.318 +3f056927gMHl7mWB89rb73JahbhQIA linux-2.4.29-xen-sparse/include/linux/blk.h 2.319 +419e0488SBzS3mdUhwgsES5a5e3abA linux-2.4.29-xen-sparse/include/linux/irq.h 2.320 +4124f66fPHG6yvB_vXmesjvzrJ3yMg linux-2.4.29-xen-sparse/include/linux/mm.h 2.321 +401c0590D_kwJDU59X8NyvqSv_Cl2A linux-2.4.29-xen-sparse/include/linux/sched.h 2.322 +40a248afgI0_JKthdYAe8beVfXSTpQ linux-2.4.29-xen-sparse/include/linux/skbuff.h 2.323 +401c0592pLrp_aCbQRo9GXiYQQaVVA linux-2.4.29-xen-sparse/include/linux/timer.h 2.324 +3f9d4b44247udoqWEgFkaHiWv6Uvyg linux-2.4.29-xen-sparse/kernel/time.c 2.325 +401c059bjLBFYHRD4Py2uM3eA1D4zQ linux-2.4.29-xen-sparse/kernel/timer.c 2.326 +3e6e7c1efbQe93xCvOpOVCnXTMmQ5w linux-2.4.29-xen-sparse/mkbuildtree 2.327 +406aeeafkrnCuIVWLFv3kfn4uAD5Eg linux-2.4.29-xen-sparse/mm/highmem.c 2.328 +3e5a4e68GxCIaFH4sy01v1wjapetaA linux-2.4.29-xen-sparse/mm/memory.c 2.329 +3f108af5VxPkLv13tXpXgoRKALQtXQ linux-2.4.29-xen-sparse/mm/mprotect.c 2.330 +3e5a4e681xMPdF9xCMwpyfuYMySU5g linux-2.4.29-xen-sparse/mm/mremap.c 2.331 +409ba2e7akOFqQUg6Qyg2s28xcXiMg linux-2.4.29-xen-sparse/mm/page_alloc.c 2.332 +3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.29-xen-sparse/mm/swapfile.c 2.333 +41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.29-xen-sparse/mm/vmalloc.c 2.334 +41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.29-xen-sparse/net/core/skbuff.c 2.335 +40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.10-xen-sparse/arch/xen/Kconfig 2.336 +40f56237utH41NPukqHksuNf29IC9A linux-2.6.10-xen-sparse/arch/xen/Kconfig.drivers 2.337 +40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.10-xen-sparse/arch/xen/Makefile 2.338 +40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.10-xen-sparse/arch/xen/boot/Makefile 2.339 +40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.10-xen-sparse/arch/xen/configs/xen0_defconfig 2.340 +40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.10-xen-sparse/arch/xen/configs/xenU_defconfig 2.341 +40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.10-xen-sparse/arch/xen/i386/Kconfig 2.342 +40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.10-xen-sparse/arch/xen/i386/Makefile 2.343 +40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.10-xen-sparse/arch/xen/i386/kernel/Makefile 2.344 +40f56238rXVTJQKbBuXXLH52qEArcg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/Makefile 2.345 +40f562385s4lr6Zg92gExe7UQ4A76Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/common.c 2.346 +41ab440bnpxZdWShZrGgM9pPaz5rmA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/Makefile 2.347 +41ab440bBKWz-aEOEojU4PAMXe3Ppg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c 2.348 +40f56238XDtHSijkAFlbv1PT8Bhw_Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/entry.S 2.349 +40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S 2.350 +40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c 2.351 +40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ioport.c 2.352 +41d00d82zN8IfLBRxc7G_i7lbwT3cQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c 2.353 +40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ldt.c 2.354 +41d54a76YMCA67S8J-TBT3J62Wx6yA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/microcode.c 2.355 +4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/pci-dma.c 2.356 +40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.10-xen-sparse/arch/xen/i386/kernel/process.c 2.357 +40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/setup.c 2.358 +40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/signal.c 2.359 +41811cac4lkCB-fHir6CcxuEJ2pGsQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c 2.360 +41811ca9mbGpqBrZVrUGEiv8CTV3ng linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c 2.361 +40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/time.c 2.362 +40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/Makefile 2.363 +40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c 2.364 +40f562389xNa78YBZciUibQjyRU_Lg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/traps.c 2.365 +40f56238JypKAUG01ZojFwH7qnZ5uA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.S 2.366 +40f56238wi6AdNQjm0RT57bSkwb6hg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.lds 2.367 +40f56238a3w6-byOzexIlMgni76Lcg linux-2.6.10-xen-sparse/arch/xen/i386/mm/Makefile 2.368 +40f56238ILx8xlbywNbzTdv5Zr4xXQ linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c 2.369 +4118cc35CbY8rfGVspF5O-7EkXBEAA linux-2.6.10-xen-sparse/arch/xen/i386/mm/highmem.c 2.370 +40f562383SKvDStdtrvzr5fyCbW4rw linux-2.6.10-xen-sparse/arch/xen/i386/mm/hypervisor.c 2.371 +40f56239xcNylAxuGsQHwi1AyMLV8w linux-2.6.10-xen-sparse/arch/xen/i386/mm/init.c 2.372 +41062ab7CjxC1UBaFhOMWWdhHkIUyg linux-2.6.10-xen-sparse/arch/xen/i386/mm/ioremap.c 2.373 +413b5ab8LIowAnQrEmaOJSdmqm96jQ linux-2.6.10-xen-sparse/arch/xen/i386/mm/pageattr.c 2.374 +40f5623906UYHv1rsVUeRc0tFT0dWw linux-2.6.10-xen-sparse/arch/xen/i386/mm/pgtable.c 2.375 +4107adf12ndy94MidCaivDibJ3pPAg linux-2.6.10-xen-sparse/arch/xen/i386/pci/Makefile 2.376 +4107adf1WcCgkhsdLTRGX52cOG1vJg linux-2.6.10-xen-sparse/arch/xen/i386/pci/direct.c 2.377 +4107adf1s5u6249DNPUViX1YNagbUQ linux-2.6.10-xen-sparse/arch/xen/i386/pci/irq.c 2.378 +40f56239zOksGg_H4XD4ye6iZNtoZA linux-2.6.10-xen-sparse/arch/xen/kernel/Makefile 2.379 +40f56239bvOjuuuViZ0XMlNiREFC0A linux-2.6.10-xen-sparse/arch/xen/kernel/ctrl_if.c 2.380 +41ab6fa06JdF7jxUsuDcjN3UhuIAxg linux-2.6.10-xen-sparse/arch/xen/kernel/devmem.c 2.381 +40f56238xFQe9T7M_U_FItM-bZIpLw linux-2.6.10-xen-sparse/arch/xen/kernel/evtchn.c 2.382 +4110f478aeQWllIN7J4kouAHiAqrPw linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c 2.383 +412dfae9eA3_6e6bCGUtg1mj8b56fQ linux-2.6.10-xen-sparse/arch/xen/kernel/gnttab.c 2.384 +40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.10-xen-sparse/arch/xen/kernel/reboot.c 2.385 +414c113396tK1HTVeUalm3u-1DF16g linux-2.6.10-xen-sparse/arch/xen/kernel/skbuff.c 2.386 +418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c 2.387 +3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.10-xen-sparse/arch/xen/kernel/xen_proc.c 2.388 +41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.10-xen-sparse/drivers/Makefile 2.389 +4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.10-xen-sparse/drivers/char/mem.c 2.390 +4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.10-xen-sparse/drivers/char/tty_io.c 2.391 +40f56239Dp_vMTgz8TEbvo1hjHGc3w linux-2.6.10-xen-sparse/drivers/xen/Makefile 2.392 +41768fbcncpBQf8s2l2-CwoSNIZ9uA linux-2.6.10-xen-sparse/drivers/xen/balloon/Makefile 2.393 +3e6377f8i5e9eGz7Pw6fQuhuTQ7DQg linux-2.6.10-xen-sparse/drivers/xen/balloon/balloon.c 2.394 +410d0893otFGghmv4dUXDUBBdY5aIA linux-2.6.10-xen-sparse/drivers/xen/blkback/Makefile 2.395 +4087cf0d1XgMkooTZAiJS6NrcpLQNQ linux-2.6.10-xen-sparse/drivers/xen/blkback/blkback.c 2.396 +4087cf0dZadZ8r6CEt4fNN350Yle3A linux-2.6.10-xen-sparse/drivers/xen/blkback/common.h 2.397 +4087cf0dxlh29iw0w-9rxOCEGCjPcw linux-2.6.10-xen-sparse/drivers/xen/blkback/control.c 2.398 +4087cf0dbuoH20fMjNZjcgrRK-1msQ linux-2.6.10-xen-sparse/drivers/xen/blkback/interface.c 2.399 +4087cf0dk97tacDzxfByWV7JifUYqA linux-2.6.10-xen-sparse/drivers/xen/blkback/vbd.c 2.400 +40f56239Sfle6wGv5FS0wjS_HI150A linux-2.6.10-xen-sparse/drivers/xen/blkfront/Kconfig 2.401 +40f562395atl9x4suKGhPkjqLOXESg linux-2.6.10-xen-sparse/drivers/xen/blkfront/Makefile 2.402 +40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.10-xen-sparse/drivers/xen/blkfront/blkfront.c 2.403 +40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.10-xen-sparse/drivers/xen/blkfront/block.h 2.404 +40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.10-xen-sparse/drivers/xen/blkfront/vbd.c 2.405 +41a226e0vjAcDXHOnXE5ummcdUD2mg linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile 2.406 +41a226e0VeZA1N8tbU6nvJ3OxUcJmw linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c 2.407 +41a226e1k4J5VMLnrYXDWRqElS49YQ linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h 2.408 +41a226e1-A_Hy7utS8vJKaXnH_tzfA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c 2.409 +41a226e19NoUUTOvs7jumDMRYDIO4Q linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c 2.410 +41a226e1MNSyWWK5dEVgvSQ5OW0fDA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c 2.411 +40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.10-xen-sparse/drivers/xen/console/Makefile 2.412 +3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.10-xen-sparse/drivers/xen/console/console.c 2.413 +40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.10-xen-sparse/drivers/xen/evtchn/Makefile 2.414 +40f56239DoibTX6R-ZYd3QTXAB8_TA linux-2.6.10-xen-sparse/drivers/xen/evtchn/evtchn.c 2.415 +410a9817HEVJvred5Oy_uKH3HFJC5Q linux-2.6.10-xen-sparse/drivers/xen/netback/Makefile 2.416 +4097ba831lpGeLlPg-bfV8XarVVuoQ linux-2.6.10-xen-sparse/drivers/xen/netback/common.h 2.417 +4097ba83wvv8yi5P5xugCUBAdb6O-A linux-2.6.10-xen-sparse/drivers/xen/netback/control.c 2.418 +4097ba83byY5bTSugJGZ1exTxIcMKw linux-2.6.10-xen-sparse/drivers/xen/netback/interface.c 2.419 +4087cf0dGmSbFhFZyIZBJzvqxY-qBw linux-2.6.10-xen-sparse/drivers/xen/netback/netback.c 2.420 +40f56239lrg_Ob0BJ8WBFS1zeg2CYw linux-2.6.10-xen-sparse/drivers/xen/netfront/Kconfig 2.421 +40f56239Wd4k_ycG_mFsSO1r5xKdtQ linux-2.6.10-xen-sparse/drivers/xen/netfront/Makefile 2.422 +405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c 2.423 +4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.10-xen-sparse/drivers/xen/privcmd/Makefile 2.424 +3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.10-xen-sparse/drivers/xen/privcmd/privcmd.c 2.425 +41ee5e8bYDQkjRVKnFn5uFyy0KreCw linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h 2.426 +41ee5e8bt7xeBUJqG5XJS-ofukdsgA linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c 2.427 +41ee5e8bSs3BGC7yegM_ek2Tn0Ahvw linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c 2.428 +41ee5e8bglvqKvZSY5uJ5JGQejEwyQ linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c 2.429 +41ee5e8ckZ9xVNvu9NHIZDK7JqApmQ linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c 2.430 +41ee5e8ck9scpGirfqEZRARbGDyTXA linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h 2.431 +412f47e4RKD-R5IS5gEXvcT8L4v8gA linux-2.6.10-xen-sparse/include/asm-generic/pgtable.h 2.432 +40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/desc.h 2.433 +4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h 2.434 +40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/fixmap.h 2.435 +41979925z1MsKU1SfuuheM1IFDQ_bA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/floppy.h 2.436 +4118b6a418gnL6AZsTdglC92YGqYTg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/highmem.h 2.437 +40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/io.h 2.438 +40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h 2.439 +40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h 2.440 +40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h 2.441 +41811f07Iri9hrvs97t-baxmhOwWDQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h 2.442 +4120f807GCO0uqsLqdZj9csxR1Wthw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mmu_context.h 2.443 +40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/page.h 2.444 +40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/param.h 2.445 +41137cc1kkvg0cg7uxddcEfjL7L67w linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pci.h 2.446 +40f5623atCokYc2uCysSJ8jFO8TEsw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgalloc.h 2.447 +412e01beTwiaC8sYY4XJP8PxLST5CA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level-defs.h 2.448 +40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h 2.449 +40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable.h 2.450 +40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/processor.h 2.451 +412ea0afQL2CAI-f522TbLjLPMibPQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/ptrace.h 2.452 +40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/segment.h 2.453 +40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/setup.h 2.454 +4198c32a8NzmcKVOzKaEJfaQxxiA0A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h 2.455 +40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h 2.456 +40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/system.h 2.457 +40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/tlbflush.h 2.458 +41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/vga.h 2.459 +40f5623bxUbeGjkRrjDguCy_Gm8RLw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/xor.h 2.460 +41af4017PDMuSmMWtSRU5UC9Vylw5g linux-2.6.10-xen-sparse/include/asm-xen/balloon.h 2.461 +40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.10-xen-sparse/include/asm-xen/ctrl_if.h 2.462 +40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.10-xen-sparse/include/asm-xen/evtchn.h 2.463 +419b4e9367PjTEvdjwavWN12BeBBXg linux-2.6.10-xen-sparse/include/asm-xen/foreign_page.h 2.464 +412dfaeazclyNDM0cpnp60Yo4xulpQ linux-2.6.10-xen-sparse/include/asm-xen/gnttab.h 2.465 +40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.10-xen-sparse/include/asm-xen/hypervisor.h 2.466 +3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.10-xen-sparse/include/asm-xen/linux-public/privcmd.h 2.467 +3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.10-xen-sparse/include/asm-xen/linux-public/suspend.h 2.468 +40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.10-xen-sparse/include/asm-xen/multicall.h 2.469 +4122466356eIBnC9ot44WSVVIFyhQA linux-2.6.10-xen-sparse/include/asm-xen/queues.h 2.470 +3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.10-xen-sparse/include/asm-xen/xen_proc.h 2.471 +419b4e93z2S0gR17XTy8wg09JEwAhg linux-2.6.10-xen-sparse/include/linux/gfp.h 2.472 +419dfc609zbti8rqL60tL2dHXQ_rvQ linux-2.6.10-xen-sparse/include/linux/irq.h 2.473 +4124f66f4NaKNa0xPiGGykn9QaZk3w linux-2.6.10-xen-sparse/include/linux/skbuff.h 2.474 +419dfc6awx7w88wk6cG9P3mPidX6LQ linux-2.6.10-xen-sparse/kernel/irq/manage.c 2.475 +40f56a0ddHCSs3501MY4hRf22tctOw linux-2.6.10-xen-sparse/mkbuildtree 2.476 +412f46c0LJuKAgSPGoC0Z1DEkLfuLA linux-2.6.10-xen-sparse/mm/memory.c 2.477 +410a94a4KT6I6X0LVc7djB39tRDp4g linux-2.6.10-xen-sparse/mm/page_alloc.c 2.478 +41505c572m-s9ATiO1LiD1GPznTTIg linux-2.6.10-xen-sparse/net/core/skbuff.c 2.479 +413cb1e4zst25MDYjg63Y-NGC5_pLg netbsd-2.0-xen-sparse/Makefile 2.480 +413cb1e5c_Mkxf_X0zimEhTKI_l4DA netbsd-2.0-xen-sparse/mkbuildtree 2.481 +413cb1e5kY_Zil7-b0kI6hvCIxBEYg netbsd-2.0-xen-sparse/nbconfig-xen 2.482 +413cb1e5-58q5doPifcE1Q8ZAgm-JQ netbsd-2.0-xen-sparse/nbmake-xen 2.483 +413cb3b3Cmp02Gj87f3wwu2W9y0gBg netbsd-2.0-xen-sparse/sys/arch/xen/conf/XEN 2.484 +413cb3b3aUP9GmUWqHWQ2SRp1qXnqQ netbsd-2.0-xen-sparse/sys/arch/xen/conf/files.xen 2.485 +413cb3b3pZuLKElEpQwX1C-3hLW4qA netbsd-2.0-xen-sparse/sys/arch/xen/i386/autoconf.c 2.486 +413cb3b34ui1cCGaSqIeLiBgMp-PDw netbsd-2.0-xen-sparse/sys/arch/xen/i386/gdt.c 2.487 +413cb3b3i11i2GVGn0YGlRbM3ifbPQ netbsd-2.0-xen-sparse/sys/arch/xen/i386/hypervisor_machdep.c 2.488 +413cb3b3FgMboWw-Pm3XdbBFSlZl_g netbsd-2.0-xen-sparse/sys/arch/xen/i386/locore.S 2.489 +413cb3b4ABCSfkHRmbsWfnZNG28nBA netbsd-2.0-xen-sparse/sys/arch/xen/i386/machdep.c 2.490 +413cb3b4bvVJ7UlliMSH60J4uIb9kA netbsd-2.0-xen-sparse/sys/arch/xen/i386/pmap.c 2.491 +413cb3b4aKd9SUY-OzUiTF0Gb9ve9w netbsd-2.0-xen-sparse/sys/arch/xen/i386/sys_machdep.c 2.492 +413cb3b4jUtWl-sP493PvB27o-Iltw netbsd-2.0-xen-sparse/sys/arch/xen/i386/vector.S 2.493 +413cb3b4ElwwoJEmmzflV0HgK5Qxcg netbsd-2.0-xen-sparse/sys/arch/xen/i386/xen_machdep.c 2.494 +413cb564XpMxewOF9BCK37BNcDewHQ netbsd-2.0-xen-sparse/sys/arch/xen/include/ctrl_if.h 2.495 +413cb564rB0n4HPqzYQxBvfR9r-KeQ netbsd-2.0-xen-sparse/sys/arch/xen/include/evtchn.h 2.496 +413cb3b4k9OVRCxuSdhKt-2baTp_Yg netbsd-2.0-xen-sparse/sys/arch/xen/include/frameasm.h 2.497 +413cb3b4bRsqiHQLTKEZk4-zOksf8A netbsd-2.0-xen-sparse/sys/arch/xen/include/hypervisor.h 2.498 +413cb3b4OqY83qI8GztIZGADpvrpSw netbsd-2.0-xen-sparse/sys/arch/xen/include/if_xennetvar.h 2.499 +413cb3b42GG0LffraTnpZKlSUq57wg netbsd-2.0-xen-sparse/sys/arch/xen/include/pmap.h 2.500 +41580792kPzxLiPb47k_GDEMSbAbzA netbsd-2.0-xen-sparse/sys/arch/xen/include/xbdvar.h 2.501 +413cb3b4F0ArkWVBRyspkw7ivfXihg netbsd-2.0-xen-sparse/sys/arch/xen/include/xen.h 2.502 +413cb3b4ullQud70n4JClwoEEUBh8Q netbsd-2.0-xen-sparse/sys/arch/xen/include/xenfunc.h 2.503 +413cb3b4y1Ffq8BOhbdSpn-fGmKuEg netbsd-2.0-xen-sparse/sys/arch/xen/include/xenpmap.h 2.504 +413cb3b4uXOFcT56QuLt1fcDrB-4Zg netbsd-2.0-xen-sparse/sys/arch/xen/x86/bus_space.c 2.505 +413cb3b4hIffjrKn3zhVqJmH6ueB3Q netbsd-2.0-xen-sparse/sys/arch/xen/xen/clock.c 2.506 +413cb564SakPue2EEm4MTtRb4z5JVw netbsd-2.0-xen-sparse/sys/arch/xen/xen/ctrl_if.c 2.507 +413cb564uNQuIozl7hperSVK9EeDCA netbsd-2.0-xen-sparse/sys/arch/xen/xen/evtchn.c 2.508 +413cb3b4eNdRIasCoQIuX4Nu39Dlqw netbsd-2.0-xen-sparse/sys/arch/xen/xen/hypervisor.c 2.509 +413cb3b40DLJLbX_ZUIULB0JFjBuaw netbsd-2.0-xen-sparse/sys/arch/xen/xen/if_xennet.c 2.510 +413cb3b46JnvK1UurZAubeQoFg1W-w netbsd-2.0-xen-sparse/sys/arch/xen/xen/xbd.c 2.511 +413cb3b5rIKB3TbyhK3pbNyVkYysqA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xen_debug.c 2.512 +413cb3b5eKxnzoodEqaWn2wrPnHWnA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xencons.c 2.513 +413cb3b5F56TvQWAmO5TsuzhtzLFPQ netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c 2.514 +413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs 2.515 +413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.9/agpgart.patch 2.516 3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile 2.517 +40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk 2.518 +4209033eUwhDBJ_bxejiv5c6gjXS4A tools/blktap/Makefile 2.519 +4209033ewLAHdhGrT_2jo3Gb_5bDcA tools/blktap/README 2.520 +4209033eX_Xw94wHaOCtnU9nOAtSJA tools/blktap/blkaio.c 2.521 +4209033egwf6LDxM2hbaqi9rRdZy4A tools/blktap/blkaiolib.c 2.522 +4209033f9yELLK85Ipo2oKjr3ickgQ tools/blktap/blkaiolib.h 2.523 +4209033fL9LcSI6LXrIp5O4axbUBLg tools/blktap/blkcow.c 2.524 +4209033fUDlFGZreIyZHdP7h7yfvuQ tools/blktap/blkcowgnbd.c 2.525 +4209033fCgZzLeMOwNBFmsp99x58ZQ tools/blktap/blkcowimg.c 2.526 +4209033frfXH6oOi9AvRz08PPAndNA tools/blktap/blkcowlib.c 2.527 +4209033fhFd_y2go9HgCF395A35xJg tools/blktap/blkcowlib.h 2.528 +4209033fHgtGpb_K16_xC9CpkjNZLw tools/blktap/blkdump.c 2.529 +4209033fm61CZG1RyKDW75V-eTZ9fg tools/blktap/blkgnbd.c 2.530 +4209033fVfa-R6MFgGcmsQHTDna4PA tools/blktap/blkgnbdlib.c 2.531 +4209033fIgDQbaHwHStHhPEDTtbqsA tools/blktap/blkgnbdlib.h 2.532 +4209033figp5JRsKsXY8rw4keRumkg tools/blktap/blkimg.c 2.533 +42090340V-8HKGlr00SyJGsE5jXC3A tools/blktap/blkimglib.c 2.534 +42090340c7pQbh0Km8zLcEqPd_3zIg tools/blktap/blkimglib.h 2.535 +42090340_mvZtozMjghPJO0qsjk4NQ tools/blktap/blkint.h 2.536 +42090340rc2q1wmlGn6HtiJAkqhtNQ tools/blktap/blktaplib.c 2.537 +42090340C-WkRPT7N3t-8Lzehzogdw tools/blktap/blktaplib.h 2.538 +42090340B3mDvcxvd9ehDHUkg46hvw tools/blktap/libgnbd/Makefile 2.539 +42090340ZWkc5Xhf9lpQmDON8HJXww tools/blktap/libgnbd/gnbdtest.c 2.540 +42090340ocMiUScJE3OpY7QNunvSbg tools/blktap/libgnbd/libgnbd.c 2.541 +42090340G5_F_EeVnPORKB0pTMGGhA tools/blktap/libgnbd/libgnbd.h 2.542 +4124b307nRyK3dhn1hAsvrY76NuV3g tools/check/Makefile 2.543 +4124b307vHLUWbfpemVefmaWDcdfag tools/check/README 2.544 +4124b307jt7T3CHysgl9LijNHSe1tA tools/check/check_brctl 2.545 +4124b307HDX972-zihuZWXB7R8Vd0w tools/check/check_curl_devel 2.546 +4124b307P3bZBkTFm6r-3XTbf0phAA tools/check/check_curl_lib 2.547 +4124b307u-FeKvFP9kZnh0rLV0XjGg tools/check/check_logging 2.548 +4124b307tRTjLqzRy60QrUoqN2Fhuw tools/check/check_python 2.549 +4124b307XdznSNCv97lrT3RpOdMM1A tools/check/check_twisted 2.550 +4124b307lnAATmulpXYa0M-dzxLBDA tools/check/check_zlib_devel 2.551 +4124b308ly20ptMKQoiztPyP_X68Mw tools/check/check_zlib_lib 2.552 +4124b308O8yPHMKbj4YPR_grPGZmdA tools/check/chk 2.553 401d7e160vaxMBAUSLSicuZ7AQjJ3w tools/examples/Makefile 2.554 401d7e16UgeqroJQTIhwkrDVkoWgZQ tools/examples/README 2.555 +41597996VhTbNuHbuscYSfRb-WR6fA tools/examples/block-enbd 2.556 +41597996GHP2_yVih2UspXh328fgMQ tools/examples/block-file 2.557 +41dde8af16Hulg1pgW8aOnbbxyrl7w tools/examples/bochsrc 2.558 405ff55dawQyCHFEnJ067ChPRoXBBA tools/examples/init.d/xend 2.559 +40278d94cIUWl2eRgnwZtr4hTyWT1Q tools/examples/init.d/xendomains 2.560 +41dde8afTUuvdtFUlOx0ZRusKxyd8w tools/examples/mem-map.sxp 2.561 40ee75a9xFz6S05sDKu-JCLqyVTkDA tools/examples/network 2.562 +41fc0c18hVgK5rKJyZUsqybux9D9Dg tools/examples/network-nat 2.563 +41e661e1giIEKbJ25qfiP-ke8u8hFA tools/examples/network-route 2.564 40ee75a967sxgcRY4Q7zXoVUaJ4flA tools/examples/vif-bridge 2.565 -40e15b7edWEtBf_oe3eBwGKuh1dyzQ tools/examples/vifctl 2.566 +41fc0c18AFAVXA1uGm1JFWHMeeznVw tools/examples/vif-nat 2.567 +41e661e1ooiRKlOfwumG6wwzc0PdhQ tools/examples/vif-route 2.568 40ee75a93cqxHp6MiYXxxwR5j2_8QQ tools/examples/xend-config.sxp 2.569 -41090ec8Pj_bkgCBpg2W7WfmNkumEA tools/examples/xmdefaults 2.570 -40cf2937oKlROYOJTN8GWwWM5AmjBg tools/examples/xmexample 2.571 -40dfd40auJwNnb8NoiSnRkvZaaXkUg tools/examples/xmnetbsd-example 2.572 +41dde8af6M2Pm1Rrv_f5jEFC_BIOIA tools/examples/xmexample.vmx 2.573 +41090ec8Pj_bkgCBpg2W7WfmNkumEA tools/examples/xmexample1 2.574 +40cf2937oKlROYOJTN8GWwWM5AmjBg tools/examples/xmexample2 2.575 +41fc0c18_k4iL81hu4pMIWQu9dKpKA tools/examples/xmexample3 2.576 +41e2ff6dNPgvIrdIF6dC1azdex1U3A tools/ioemu/Makefile 2.577 +41e2ff6aoF5fgddZi0QpEWqFr89E5g tools/ioemu/font/vga.bitmap.h 2.578 +41e2ff6avgnBNvZRiL4ynyGGq2UKlw tools/ioemu/gui/Makefile 2.579 +41e2ff6a30Xuw7pDX3SlVBx3ssOMDQ tools/ioemu/gui/Makefile.in 2.580 +41e2ff6aGGn5D3-Yh856G7xWJ5ZJsA tools/ioemu/gui/bitmaps/cdromd.h 2.581 +41e2ff6abNiWU34DwftxJ30sI6TQmw tools/ioemu/gui/bitmaps/cdromd.xpm 2.582 +41e2ff6adSUYHlvyVpz7q1Izcx5_gQ tools/ioemu/gui/bitmaps/configbutton.h 2.583 +41e2ff6aLWWXfMqIH2jSCNUzuc4_Yg tools/ioemu/gui/bitmaps/configbutton.xpm 2.584 +41e2ff6ahsqMjwuhpbqfrFHCBqYhEA tools/ioemu/gui/bitmaps/copy.h 2.585 +41e2ff6ajL41CnUeGefMrNijudQlCg tools/ioemu/gui/bitmaps/copy.xpm 2.586 +41e2ff6aXn5GhkDNOGqUcfCLbDZf3w tools/ioemu/gui/bitmaps/floppya.h 2.587 +41e2ff6agOpnECodSZ62L-Uijy5fsQ tools/ioemu/gui/bitmaps/floppya.xpm 2.588 +41e2ff6akrHp6jG_Y2BmFpEcaswUqg tools/ioemu/gui/bitmaps/floppyb.h 2.589 +41e2ff6aGbvPO1cQLMLduGl16rntbg tools/ioemu/gui/bitmaps/floppyb.xpm 2.590 +41e2ff6aEcsgeBHQZ_5e3rfgo0USMA tools/ioemu/gui/bitmaps/mouse.h 2.591 +41e2ff6aO8pXESvDVxMG7TgZL7UvFA tools/ioemu/gui/bitmaps/mouse.xpm 2.592 +41e2ff6aSd1H6Z0dUVUYLsW-6EDrYw tools/ioemu/gui/bitmaps/paste.h 2.593 +41e2ff6aRGfY6Jd2TThqWtXoh2CHuQ tools/ioemu/gui/bitmaps/paste.xpm 2.594 +41e2ff6aKDap56ifPVgdBVPc9yfmvw tools/ioemu/gui/bitmaps/power.h 2.595 +41e2ff6aDLfEO8dFUd9IpsfUpMk-Vg tools/ioemu/gui/bitmaps/power.xpm 2.596 +41e2ff6aKWtTsWCds4vL2azV3w-XtQ tools/ioemu/gui/bitmaps/reset.h 2.597 +41e2ff6a_AU4_ytzHU0Btr3trcbVmA tools/ioemu/gui/bitmaps/reset.xpm 2.598 +41e2ff6a-hGpcXEChJQDo-xRyH5oGQ tools/ioemu/gui/bitmaps/snapshot.h 2.599 +41e2ff6aRoGi5nKyQFtcUzK0-9dRDA tools/ioemu/gui/bitmaps/snapshot.xpm 2.600 +41e2ff6aZdTp9lSJjyUI7YoXqQnCng tools/ioemu/gui/bitmaps/userbutton.h 2.601 +41e2ff6aWc4p23rAKngLMu8eLZiXlw tools/ioemu/gui/bitmaps/userbutton.xpm 2.602 +41e2ff6a7gMd57Q5DL0kRD-mR7JzZg tools/ioemu/gui/gui.cc 2.603 +41e2ff6a-USvofVXiSpY76RT4C0IVw tools/ioemu/gui/gui.h 2.604 +41e2ff6aYAuOb0x4zTVB7cWYIFIdOA tools/ioemu/gui/icon_bochs.h 2.605 +41e2ff6aZbFf-Djysg393N4vCEJ7ig tools/ioemu/gui/icon_bochs.xpm 2.606 +41e2ff6ai-vJcSE9hfz4SHZ20rK5QA tools/ioemu/gui/keymap.cc 2.607 +41e2ff6a_TY9EJnCcbr5EKV_pi90kg tools/ioemu/gui/keymap.h 2.608 +41e2ff6aP0co3DAK04MrugZCkp0roQ tools/ioemu/gui/keymaps/convertmap.pl 2.609 +41e2ff6a-GiP9bzqtVXEjxmxiYgzeg tools/ioemu/gui/keymaps/sdl-pc-de.map 2.610 +41e2ff6aa5xj7jyze5bcPnj-UHYgTQ tools/ioemu/gui/keymaps/sdl-pc-us.map 2.611 +41e2ff6ahemkf0kG8SzDXq8g2qp9Pg tools/ioemu/gui/keymaps/x11-pc-be.map 2.612 +41e2ff6ajdaBBS85yriZ3S9ecy5Odg tools/ioemu/gui/keymaps/x11-pc-da.map 2.613 +41e2ff6aGkLyRvwOTZnDqvobziAoiQ tools/ioemu/gui/keymaps/x11-pc-de.map 2.614 +41e2ff6aWcqOK6RjpY28Y4bVjMy9yg tools/ioemu/gui/keymaps/x11-pc-es.map 2.615 +41e2ff6aF46Uu09XOmmkcGDotToSxw tools/ioemu/gui/keymaps/x11-pc-fr.map 2.616 +41e2ff6aHM040MYLmOeW_PKIx1TWWg tools/ioemu/gui/keymaps/x11-pc-it.map 2.617 +41e2ff6aCa-6fHjBOoPWP8hDweZ1Fw tools/ioemu/gui/keymaps/x11-pc-se.map 2.618 +41e2ff6aUH4wvnqRwo91dJBnhxEYUg tools/ioemu/gui/keymaps/x11-pc-uk.map 2.619 +41e2ff6aF7b08llRJQBLgNAEfyn9wQ tools/ioemu/gui/keymaps/x11-pc-us.map 2.620 +41e2ff6a2gbWdoaE7X9vtizvQ4QqdQ tools/ioemu/gui/nogui.cc 2.621 +41e2ff6a_rWAWre2toEtNUMKliCJPA tools/ioemu/gui/rfb.cc 2.622 +41e2ff6aQfuugiO3YE07l03L6ASP9g tools/ioemu/gui/rfb.h 2.623 +41e2ff6aTWFzmW0sjxXpQq7ulaj_Pw tools/ioemu/gui/rfbproto.h 2.624 +41e2ff6bf4pfJkZTN5vA6HbiJJqeNA tools/ioemu/gui/sdl.h 2.625 +41e2ff6bVnojmIqKJCbhVUKtMcUWJg tools/ioemu/gui/sdlkeys.h 2.626 +41e2ff6bKVx97oSdGGToXQXvbQgkZA tools/ioemu/gui/siminterface.cc 2.627 +41e2ff6bDB5XABCVAA7nMolZPe5ZoA tools/ioemu/gui/siminterface.h 2.628 +41e2ff6benMg1o7HQ2C5PGS3KFHFow tools/ioemu/gui/svga.cc 2.629 +41e2ff6bz3XZGzzwvXGqFadb3QqWWQ tools/ioemu/gui/term.cc 2.630 +41e2ff6b8jzKgyKu2gNVlRWepPNA0A tools/ioemu/gui/textconfig.cc 2.631 +41e2ff6bUKaJhGtIDqUYzAesLg1MGA tools/ioemu/gui/textconfig.h 2.632 +41e2ff6b__Pd6Q2aYDZ5vB9bGJEMNA tools/ioemu/gui/x.cc 2.633 +41e2ff6bp96y5NyMIFjH-HpCRcGBPg tools/ioemu/include/bochs.h 2.634 +41e2ff6bqIMIJlitAnubjNjf70s3dw tools/ioemu/include/bxversion.h 2.635 +41e2ff6bTfksDlUXSWC_wC_g30r1cQ tools/ioemu/include/config.h 2.636 +41e2ff6bwDEGCUwYTf1oo9ZCva2nkw tools/ioemu/include/cpu/cpu.h 2.637 +41e2ff6bH1PTh2iMScpOn9v9R3SDag tools/ioemu/include/extplugin.h 2.638 +41e2ff6bFS9XP8ndI6IhGFitzsvTtw tools/ioemu/include/instrument.h 2.639 +41e2ff6bz71jKff_NUdmI279ArbMgw tools/ioemu/include/ltdl.h 2.640 +41e2ff6bYayW_YSVmb1sJCvk9z9-ug tools/ioemu/include/ltdlconf.h 2.641 +41e2ff6b_MdkIIjsFYTFMIKIt7Royw tools/ioemu/include/osdep.h 2.642 +41e2ff6bPJNSITgePniKtvlujrmcLA tools/ioemu/include/pc_system.h 2.643 +41e2ff6bmHZyZrzF7iHpD212GeAT-w tools/ioemu/include/plugin.h 2.644 +41e2ff6bHgstm2ZhCIdsag_c3_dVjA tools/ioemu/include/state_file.h 2.645 +41e2ff6bJjm8-4K6Cu2k6zoanQ8Yyg tools/ioemu/iodev/Makefile 2.646 +41e2ff6bKj9bQ4ELP2msSYoT7XrxHQ tools/ioemu/iodev/aspi-win32.h 2.647 +41e2ff6b95DLt3iA-okw7D4NJcaDCg tools/ioemu/iodev/biosdev.cc 2.648 +41e2ff6b1ra22hFnE6Tm9lxVaH4Mjw tools/ioemu/iodev/biosdev.h 2.649 +41e2ff6bftET40KQA19RAisCxyDHVQ tools/ioemu/iodev/cdrom.cc 2.650 +41e2ff6buuSLUZPj9EtlGA3tufslNQ tools/ioemu/iodev/cdrom.h 2.651 +41e2ff6bvD6jE2JHKP0wd7I_mB7MJg tools/ioemu/iodev/cdrom_beos.h 2.652 +41e2ff6b99qviTPyKLjy0-D5DIqACw tools/ioemu/iodev/cmos.cc 2.653 +41e2ff6bpeZbWqQfuwM_Xj-kElElAA tools/ioemu/iodev/cmos.h 2.654 +41e2ff6bRf7QN_i1c7BAzkQha8AFUg tools/ioemu/iodev/cpu.cc 2.655 +41e2ff6byVHp6G3fxAlly1u1sx_DEg tools/ioemu/iodev/crc32.cc 2.656 +41e2ff6bHWz28hOKgLKRizX9UjsyOQ tools/ioemu/iodev/crc32.h 2.657 +41e2ff6b3tvq7uKSC9DWkOswq0Re8w tools/ioemu/iodev/devices.cc 2.658 +41e2ff6bO-SYXzx1RB-1If_FNkyjLg tools/ioemu/iodev/dma.cc 2.659 +41e2ff6bdI7Ri1mVb1MzkvBKlNSx6Q tools/ioemu/iodev/dma.h 2.660 +41e2ff6bfnGRrb25sneyvOXxSi8pLg tools/ioemu/iodev/eth.cc 2.661 +41e2ff6bteOXqvNO1FIR5iFHUwqUuA tools/ioemu/iodev/eth.h 2.662 +41e2ff6bTQxXrfWSsDCISUAdzlAe9w tools/ioemu/iodev/eth_arpback.cc 2.663 +41e2ff6brorlh9N9Myd1_g7ktKcIfQ tools/ioemu/iodev/eth_fbsd.cc 2.664 +41e2ff6b5xRFy8_OISEtd2UrHEUdfw tools/ioemu/iodev/eth_linux.cc 2.665 +41e2ff6biySiByowEn40XP_yx_lxKg tools/ioemu/iodev/eth_null.cc 2.666 +41e2ff6bFAVD0UO_ob40usJOnEPAZg tools/ioemu/iodev/eth_packetmaker.cc 2.667 +41e2ff6bsR-mjksFNRC9HiDDVUfI2w tools/ioemu/iodev/eth_packetmaker.h 2.668 +41e2ff6bMnzZ7cpqVPQY0_0smpqjHw tools/ioemu/iodev/eth_tap.cc 2.669 +41e2ff6bGa18jj0cqoOAqBPDzk2Aog tools/ioemu/iodev/eth_tuntap.cc 2.670 +41e2ff6bY1u244mkTGfttym3HoLo5Q tools/ioemu/iodev/extfpuirq.cc 2.671 +41e2ff6b_wh3dgYBx38KIJ00Qv4XUA tools/ioemu/iodev/extfpuirq.h 2.672 +41e2ff6b3uiKo02slxJn11bvZKsF3g tools/ioemu/iodev/floppy.cc 2.673 +41e2ff6bKba0nlJHGy2kWUr_3e_nvw tools/ioemu/iodev/floppy.h 2.674 +41e2ff6bC1KaCAEBYYTkJJ5_pBydkQ tools/ioemu/iodev/gameport.cc 2.675 +41e2ff6bePGww4K0p8vTLphdE_zdig tools/ioemu/iodev/gameport.h 2.676 +41e2ff6biLQpMiiiKokz7qUXpBn5cg tools/ioemu/iodev/guest2host.h 2.677 +41e2ff6bji1Iix0CzQTeh9yB-Ao14Q tools/ioemu/iodev/harddrv.cc 2.678 +41e2ff6bcSDALK1SdvKvTCxemzpWwQ tools/ioemu/iodev/harddrv.h 2.679 +41e2ff6b36hFBfV06tX0a5CRjFpuxA tools/ioemu/iodev/ioapic.cc 2.680 +41e2ff6brajF6a0a7RkLHiX0M9oH7w tools/ioemu/iodev/ioapic.h 2.681 +41e2ff6btDX2IfOnC_LkP08ZlKxjJw tools/ioemu/iodev/iodebug.cc 2.682 +41e2ff6b-__Z4ECo9pHWVM-Rz-0ehw tools/ioemu/iodev/iodebug.h 2.683 +41e2ff6btRbGfsUt5k4MClieCZ-EBQ tools/ioemu/iodev/iodev.h 2.684 +41e2ff6bH5C9aG3f2QhoD6zCdShJYQ tools/ioemu/iodev/keyboard.cc 2.685 +41e2ff6bUOmeloSf5s9Gkdffo1bEyA tools/ioemu/iodev/keyboard.h 2.686 +41e2ff6b55oybF1yhInYSZX2bxiJSw tools/ioemu/iodev/load32bitOShack.cc 2.687 +41e2ff6b5WcmfYXaREzUm0KQu7pKCQ tools/ioemu/iodev/logio.cc 2.688 +41e2ff6bqqHfrDtizlRKA-_oPRbGAw tools/ioemu/iodev/main.cc 2.689 +41e2ff6cWAAGa6Pt6eE4URbCOq8wQA tools/ioemu/iodev/ne2k.cc 2.690 +41e2ff6cap6qrVL42AgTpxjav0QMQg tools/ioemu/iodev/ne2k.h 2.691 +41e2ff6cHH0UoJW74RKZFnPBSt1jUw tools/ioemu/iodev/osdep.cc 2.692 +41e2ff6ckuFNtxuAQDMVwJtYwL2QCg tools/ioemu/iodev/parallel.cc 2.693 +41e2ff6cbqWnJwLAQ9NDZJwUyGiIww tools/ioemu/iodev/parallel.h 2.694 +41e2ff6cAdkxmfzVhbQn9Plq3X4S_w tools/ioemu/iodev/pc_system.cc 2.695 +41e2ff6csu1e9S_rywWOq9B85IaZzA tools/ioemu/iodev/pci.cc 2.696 +41e2ff6cjcmNZLD17naGuKj_Qon6Ow tools/ioemu/iodev/pci.h 2.697 +41e2ff6c91zYiAb9XulXkl2vLERo-w tools/ioemu/iodev/pci2isa.cc 2.698 +41e2ff6cV7IdLNbFXwlWvdcOz4F1Aw tools/ioemu/iodev/pci2isa.h 2.699 +41e2ff6cviwF37ZllnYtHA3MEHRMWw tools/ioemu/iodev/pciusb.cc 2.700 +41e2ff6ceFmfyqr1MgYhEoRM1s6icQ tools/ioemu/iodev/pciusb.h 2.701 +41e2ff6cd-1VHyISVo789tv3ImNgLw tools/ioemu/iodev/pcivga.cc 2.702 +41e2ff6cVkXDlrNUTdt7D6BULEp1Tg tools/ioemu/iodev/pcivga.h 2.703 +41e2ff6c3xjAFB8X5OLFz_8Of62v2Q tools/ioemu/iodev/pic.cc 2.704 +41e2ff6c4UHzse5_N0Mx6u5dqKrVkw tools/ioemu/iodev/pic.h 2.705 +41e2ff6cdD9yovRmQNNJu8QVtZg7Iw tools/ioemu/iodev/pit.cc 2.706 +41e2ff6cXtvewmYJyoxrWGic2sOayg tools/ioemu/iodev/pit.h 2.707 +41e2ff6cXaqNRxMagdpNiT1kTWJJUA tools/ioemu/iodev/pit82c54.cc 2.708 +41e2ff6cHAkpKzMwyz3diMZWTswxmg tools/ioemu/iodev/pit82c54.h 2.709 +41e2ff6cMK9E2gjqHoWV9ZQfz-cP1Q tools/ioemu/iodev/pit_wrap.cc 2.710 +41e2ff6cbie7fPpQMgBImJ885GAPdw tools/ioemu/iodev/pit_wrap.h 2.711 +41e2ff6c0wLrWtBHxxboIzHsrZzkRA tools/ioemu/iodev/plugin.cc 2.712 +41e2ff6cN4Z6pnguPQaqiCkWp42MOQ tools/ioemu/iodev/scancodes.cc 2.713 +41e2ff6chK1sqb78l1sqhF3fJhjzBw tools/ioemu/iodev/scancodes.h 2.714 +41e2ff6cIyPvY7hNE5rP_PMZELhyVw tools/ioemu/iodev/scsi_commands.h 2.715 +41e2ff6cF3wH8A_66_yG92Wk7I2IWQ tools/ioemu/iodev/scsidefs.h 2.716 +41e2ff6cbAin6eD3Gfz2CozOS4_bwA tools/ioemu/iodev/scsipt.h 2.717 +41e2ff6cce6mNXZPGmlQ1bg_I0ef8Q tools/ioemu/iodev/serial.cc 2.718 +41e2ff6cxsITO-ikpd4vBYZUYO3qSw tools/ioemu/iodev/serial.h 2.719 +41e2ff6cbaCEgMJ92UELiRE2wEYe3g tools/ioemu/iodev/serial_raw.h 2.720 +41e2ff6cwDKTU8OukKNBNMDiAYUWvQ tools/ioemu/iodev/slowdown_timer.cc 2.721 +41e2ff6cM5XYdcgL417IBOzW-QipFg tools/ioemu/iodev/slowdown_timer.h 2.722 +41e2ff6c5X0WxdBPUyZlNmW6Zv_LRQ tools/ioemu/iodev/soundlnx.cc 2.723 +41e2ff6cIuE1VxGF_L6rdBtD6rZ_aA tools/ioemu/iodev/soundlnx.h 2.724 +41e2ff6cDIv87LKamP0Y-yjrdqALzQ tools/ioemu/iodev/soundwin.cc 2.725 +41e2ff6cB55j_uYIqYh-UiLS4wlm_g tools/ioemu/iodev/soundwin.h 2.726 +41e2ff6dRPBmtxjFbEM5WYuilnSSZg tools/ioemu/iodev/state_file.cc 2.727 +41e2ff6dMwkI1Dpa-UHSEzHCvjpOyw tools/ioemu/iodev/unmapped.cc 2.728 +41e2ff6d_yJMFHYPENtVmJz6wyldQA tools/ioemu/iodev/unmapped.h 2.729 +41e2ff6dU5hJI6Kn70mFingJo4cHUw tools/ioemu/iodev/vga.cc 2.730 +41e2ff6dh8xDcCXkZzpSqnFP-OXggw tools/ioemu/iodev/vga.h 2.731 +41e2ff6dayXwb5dxf0K5pd3q4QppRA tools/ioemu/iodev/virt_timer.cc 2.732 +41e2ff6dI_rNgBwki594UAWN337-zw tools/ioemu/iodev/virt_timer.h 2.733 +41e2ff6dCCtE_btrlEopLaCsLO3JDA tools/ioemu/memory/Makefile 2.734 +41e2ff6dZtwsTW8s-Gqv7bqObdvaXw tools/ioemu/memory/memory.cc 2.735 +41e2ff6dpk6EFzlHlsAsFEFdyG4wrA tools/ioemu/memory/memory.h 2.736 +41e2ff6d2i-wqgCe4iAXdckUc1GD-A tools/ioemu/memory/misc_mem.cc 2.737 +41e2ff6dCYuZgf6pxRmphkh5yeuA9Q tools/ioemu/mk/helix.mk 2.738 3fbba6dbDfYvJSsw9500b4SZyUhxjQ tools/libxc/Makefile 2.739 +41dde8afKYRKxS4XtLv1KUegGQy_bg tools/libxc/linux_boot_params.h 2.740 +41cc934abX-QLXJXW_clV_wRjM0zYg tools/libxc/plan9a.out.h 2.741 3fbba6dc1uU7U3IFeF6A-XEOYF2MkQ tools/libxc/rpm.spec 2.742 3fbba6dcrNxtygEcgJYAJJ1gCQqfsA tools/libxc/xc.h 2.743 40589968oCfoUlXd460CjVAkBE8IBA tools/libxc/xc_atropos.c 2.744 @@ -259,35 +541,50 @@ 3fbba6dbEVkVMX0JuDFzap9jeaucGA tools/lib 2.745 3fbba6dbasJQV-MVElDC0DGSHMiL5w tools/libxc/xc_domain.c 2.746 40278d99BLsfUv3qxv0I8C1sClZ0ow tools/libxc/xc_elf.h 2.747 403e0977Bjsm_e82pwvl9VvaJxh8Gg tools/libxc/xc_evtchn.c 2.748 -40ec1922Nq_Rur5KUH0MvRNKczPGxg tools/libxc/xc_fbvtsched.c 2.749 40e03333Eegw8czSWvHsbKxrRZJjRA tools/libxc/xc_io.c 2.750 40e03333vrWGbLAhyJjXlqCHaJt7eA tools/libxc/xc_io.h 2.751 3fbba6dbNCU7U6nsMYiXzKkp3ztaJg tools/libxc/xc_linux_build.c 2.752 3fbba6dbl267zZOAVHYLOdLCdhcZMw tools/libxc/xc_linux_restore.c 2.753 3fbba6db7li3FJiABYtCmuGxOJxEGw tools/libxc/xc_linux_save.c 2.754 3fbba6db7WnnJr0KFrIFrqNlSKvFYg tools/libxc/xc_misc.c 2.755 -40278d9ctaHVDaEuwhXI3Om2JOjx9w tools/libxc/xc_netbsd_build.c 2.756 4051bce6CHAsYh8P5t2OHDtRWOP9og tools/libxc/xc_physdev.c 2.757 +41cc934aO1m6NxEh_8eDr9bJIMoLFA tools/libxc/xc_plan9_build.c 2.758 3fbba6dctWRWlFJkYb6hdix2X4WMuw tools/libxc/xc_private.c 2.759 3fbba6dcbVrG2hPzEzwdeV_UC8kydQ tools/libxc/xc_private.h 2.760 40589968UQFnJeOMn8UIFLbXBuwXjw tools/libxc/xc_rrobin.c 2.761 +41dde8b0pLfAKMs_L9Uri2hnzHiCRQ tools/libxc/xc_vmx_build.c 2.762 40e1b09dMYB4ItGCqcMIzirdMd9I-w tools/libxutil/Makefile 2.763 40e033325Sjqs-_4TuzeUEprP_gYFg tools/libxutil/allocate.c 2.764 40e03332KYz7o1bn2MG_KPbBlyoIMA tools/libxutil/allocate.h 2.765 +41a216cav5JJbtDQnusfuMa_1x_Xpw tools/libxutil/debug.h 2.766 +40e9808eyjiahG5uF6AMelNVujBzCg tools/libxutil/enum.c 2.767 +40e9808eZpbdn9q2KSSMGCNvY_ZgpQ tools/libxutil/enum.h 2.768 40e03332p5Dc_owJQRuN72ymJZddFQ tools/libxutil/file_stream.c 2.769 40e03332jWfB2viAhLSkq1WK0r_iDQ tools/libxutil/file_stream.h 2.770 40e03332rUjNMGg11n2rN6V4DCrvOg tools/libxutil/gzip_stream.c 2.771 40e033321O5Qg22haLoq5lpmk4tooQ tools/libxutil/gzip_stream.h 2.772 +40e9808easXCzzAZQodEfKAhgUXSPA tools/libxutil/hash_table.c 2.773 +40e9808e94BNXIVVKBFHC3rnkvwtJg tools/libxutil/hash_table.h 2.774 40e03332ihnBGzHykVwZnFmkAppb4g tools/libxutil/iostream.c 2.775 40e03332UGwbLR4wsw4ft14p0Yw5pg tools/libxutil/iostream.h 2.776 40e0333245DLDzJemeSVBLuutHtzEQ tools/libxutil/kernel_stream.c 2.777 40e03332aK0GkgpDdc-PVTkWKTeOBg tools/libxutil/kernel_stream.h 2.778 +40e9808epW9iHcLXuO3QfUfLzB7onw tools/libxutil/lexis.c 2.779 +40e9808egccMhCizayQRGtpBA3L5MQ tools/libxutil/lexis.h 2.780 +41a216caM4z39Fzjb91rv9Ed_4By1A tools/libxutil/socket_stream.c 2.781 +41a216caqinvF1I5FQMHA4HTRz8MSA tools/libxutil/socket_stream.h 2.782 40e03332KT_tnnoAMbPVAZBB7kSOAQ tools/libxutil/string_stream.c 2.783 40e03332-VtK6_OZa1vMHXFil8uq6w tools/libxutil/string_stream.h 2.784 +40e9808e5_PLdodqVOSx0b4T_f5aeg tools/libxutil/sxpr.c 2.785 +40e9808e0O4sHZtkDv5hlSqjYcdQAQ tools/libxutil/sxpr.h 2.786 +40ec1cc6SIiGbynOi-1NtPesOlzF-Q tools/libxutil/sxpr_parser.c 2.787 +40ec1cc6wpvvGxZiq4EFvNOcw0tUFg tools/libxutil/sxpr_parser.h 2.788 40e03332Rkvq6nn_UNjzAAK_Tk9v1g tools/libxutil/sys_net.c 2.789 40e03332lQHvQHw4Rh7VsT1_sui29A tools/libxutil/sys_net.h 2.790 40e033321smklZd7bDSdWvQCeIshtg tools/libxutil/sys_string.c 2.791 40e03332h5V611rRWURRLqb1Ekatxg tools/libxutil/sys_string.h 2.792 +41a216cayFe2FQroFuzvNPw1AvNiqQ tools/libxutil/util.c 2.793 +41a216ca7mgVSnCBHPCLkGOIqPS1CQ tools/libxutil/util.h 2.794 3f776bd2Xd-dUcPKlPN2vG89VGtfvQ tools/misc/Makefile 2.795 40ab2cfawIw8tsYo0dQKtp83h4qfTQ tools/misc/fakei386xen 2.796 3f6dc136ZKOjd8PIqLbFBl_v-rnkGg tools/misc/miniterm/Makefile 2.797 @@ -296,14 +593,13 @@ 3f6dc142IHaf6XIcAYGmhV9nNSIHFQ tools/mis 2.798 40c9c469kT0H9COWzA4XzPBjWK0WsA tools/misc/netfix 2.799 4022a73cEKvrYe_DVZW2JlAxobg9wg tools/misc/nsplitd/Makefile 2.800 4022a73cKms4Oq030x2JBzUB426lAQ tools/misc/nsplitd/nsplitd.c 2.801 -3f870808_8aFBAcZbWiWGdgrGQyIEw tools/misc/p4perf.h 2.802 3f5ef5a2ir1kVAthS14Dc5QIRCEFWg tools/misc/xen-clone 2.803 3f5ef5a2dTZP0nnsFoeq2jRf3mWDDg tools/misc/xen-clone.README 2.804 -3f870808zS6T6iFhqYPGelroZlVfGQ tools/misc/xen_cpuperf.c 2.805 405eedf6_nnNhFQ1I85lhCkLK6jFGA tools/misc/xencons 2.806 40c9c4697z76HDfkCLdMhmaEwzFoNQ tools/misc/xend 2.807 +41adc641dV-0cDLSyzMs5BT8nL7v3Q tools/misc/xenperf.c 2.808 4107986eMWVdBoz4tXYoOscpN_BCYg tools/misc/xensv 2.809 -4056f5155QYZdsk-1fLdjsZPFTnlhg tools/misc/xensymoops.py 2.810 +4056f5155QYZdsk-1fLdjsZPFTnlhg tools/misc/xensymoops 2.811 40cf2937dqM1jWW87O5OoOYND8leuA tools/misc/xm 2.812 40c9c468icGyC5RAF1bRKsCXPDCvsA tools/python/Makefile 2.813 40ffc44dOwe1CcYXGCkYHdG_NxcccA tools/python/logging/logging-0.4.9.2/PKG-INFO 2.814 @@ -370,7 +666,10 @@ 40fcefb2-RIU8GB67mJMRzybME9bxw tools/pyt 2.815 40fcefb23FfQn-ZBCbcHqA0cPGqQxw tools/python/xen/sv/GenTabbed.py 2.816 40fcefb2QZAn3u3sX-M7NXBjOv5HGg tools/python/xen/sv/HTMLBase.py 2.817 40fcefb2vnfDbl4w_yCTedROPuqs0g tools/python/xen/sv/Main.py 2.818 +4186e24fZMp7_bX4f50MvUscdrST9Q tools/python/xen/sv/MigrateDomain.py 2.819 40fcefb24h-04WaHag-Tg4nxWPhTig tools/python/xen/sv/NodeInfo.py 2.820 +4186e24fb4YtJw155tNtSXXN6nEWqA tools/python/xen/sv/RestoreDomain.py 2.821 +4186e24fVXt0lfeQSAy1eiFKnPCHTg tools/python/xen/sv/SaveDomain.py 2.822 40fcefb2Sif__6AqrANeBQZZfvP-6w tools/python/xen/sv/TabView.py 2.823 41052eb8UrgtUkuJPg7oY1tutVQHsg tools/python/xen/sv/Wizard.py 2.824 40fcefb2DqteqCCZYDCvvh4Q5jBd0w tools/python/xen/sv/__init__.py 2.825 @@ -380,12 +679,15 @@ 40d8915cyoVA0hJxiBFNymL7YvDaRg tools/pyt 2.826 40dfd40aGqGkiopOOgJxSF4iCbHM0Q tools/python/xen/util/__init__.py 2.827 4055ee4dwy4l0MghZosxoiu6zmhc9Q tools/python/xen/util/console_client.py 2.828 40c9c468IienauFHQ_xJIcqnPJ8giQ tools/python/xen/util/ip.py 2.829 +41dde8b0yuJX-S79w4xJKxBQ-Mhp1A tools/python/xen/util/memmap.py 2.830 4059c6a0pnxhG8hwSOivXybbGOwuXw tools/python/xen/util/tempfile.py 2.831 40c9c468SNuObE_YWARyS0hzTPSzKg tools/python/xen/xend/Args.py 2.832 +41597996WNvJA-DVCBmc0xU9w_XmoA tools/python/xen/xend/Blkctl.py 2.833 40c9c468Um_qc66OQeLEceIz1pgD5g tools/python/xen/xend/EventServer.py 2.834 40c9c468U8EVl0d3G--8YXVg6VJD3g tools/python/xen/xend/EventTypes.py 2.835 40c9c468QJTEuk9g4qHxGpmIi70PEQ tools/python/xen/xend/PrettyPrint.py 2.836 40e15b7eeQxWE_hUPB2YTgM9fsZ1PQ tools/python/xen/xend/Vifctl.py 2.837 +4151594bBq8h-bwTfEt8dbBuojMtcA tools/python/xen/xend/XendAsynchProtocol.py 2.838 40c9c4688m3eqnC8fhLu1APm36VOVA tools/python/xen/xend/XendClient.py 2.839 40c9c468t6iIKTjwuYoe-UMCikDcOQ tools/python/xen/xend/XendConsole.py 2.840 40c9c468WnXs6eOUSff23IIGI4kMfQ tools/python/xen/xend/XendDB.py 2.841 @@ -397,6 +699,7 @@ 40f50d99YiiaMI1fZBh1VCDFLD57qg tools/pyt 2.842 40ffc44eGsgTEY355E3nN4mPLZHhMQ tools/python/xen/xend/XendLogging.py 2.843 40c9c46854nsHmuxHQHncKk5rAs5NA tools/python/xen/xend/XendMigrate.py 2.844 40c9c468M96gA1EYDvNa5w5kQNYLFA tools/python/xen/xend/XendNode.py 2.845 +4151594bhib4aUerB2SMKDl-iCtc4Q tools/python/xen/xend/XendProtocol.py 2.846 40c9c4686jruMyZIqiaZRMiMoqMJtg tools/python/xen/xend/XendRoot.py 2.847 40c9c468xzANp6o2D_MeCYwNmOIUsQ tools/python/xen/xend/XendVnet.py 2.848 40c9c468x191zetrVlMnExfsQWHxIQ tools/python/xen/xend/__init__.py 2.849 @@ -414,6 +717,7 @@ 40c9c469-8mYEJJTAR6w_ClrJRAfwQ tools/pyt 2.850 40c9c4694eu5759Dehr4Uhakei0EMg tools/python/xen/xend/server/SrvNode.py 2.851 40c9c469TaZ83ypsrktmPSHLEZiP5w tools/python/xen/xend/server/SrvRoot.py 2.852 40c9c469W3sgDMbBJYQdz5wbQweL0Q tools/python/xen/xend/server/SrvServer.py 2.853 +41ee5e8cFlODpYxhBMZqo9ZgGtcHbg tools/python/xen/xend/server/SrvUsbif.py 2.854 40c9c469aq7oXrE1Ngqf3_lBqL0RoQ tools/python/xen/xend/server/SrvVnetDir.py 2.855 4108f181GtRoD1U9TBuJXMfBbGJwdQ tools/python/xen/xend/server/SrvXendLog.py 2.856 40c9c469Y_aimoOFfUZoS-4eV8gEKg tools/python/xen/xend/server/__init__.py 2.857 @@ -425,16 +729,21 @@ 40d83983OXjt-y3HjSCcuoPp9rzvmw tools/pyt 2.858 40c9c469yrm31i60pGKslTi2Zgpotg tools/python/xen/xend/server/messages.py 2.859 40c9c46925x-Rjb0Cv2f1-l2jZrPYg tools/python/xen/xend/server/netif.py 2.860 40c9c469ZqILEQ8x6yWy0_51jopiCg tools/python/xen/xend/server/params.py 2.861 +41ee5e8dq9NtihbL4nWKjuSLOhXPUg tools/python/xen/xend/server/usbif.py 2.862 40c9c469LNxLVizOUpOjEaTKKCm8Aw tools/python/xen/xend/sxp.py 2.863 +4189125cL90jKSOcBJ3Vx4nWGiXXvA tools/python/xen/xend/util.py 2.864 40d05079aFRp6NQdo5wIh5Ly31c0cg tools/python/xen/xm/__init__.py 2.865 40cf2937gKQcATgXKGtNeWb1PDH5nA tools/python/xen/xm/create.py 2.866 40f552eariuUSB9TWqCPnDLz5zvxMw tools/python/xen/xm/destroy.py 2.867 40e41cd2w0I4En6qrJn4em8HkK_oxQ tools/python/xen/xm/help.py 2.868 40cf2937isyS250zyd0Q2GuEDoNXfQ tools/python/xen/xm/main.py 2.869 +411b2c1ehdEGO_CwG0tvn85Q-Tfh5g tools/python/xen/xm/migrate.py 2.870 40cf2937PSslwBliN1g7ofDy2H_RhA tools/python/xen/xm/opts.py 2.871 40cf2937Z8WCNOnO2FcWdubvEAF9QQ tools/python/xen/xm/shutdown.py 2.872 +41b88ba6_C4---jeA895Efg9YFZgKA tools/python/xen/xm/sysrq.py 2.873 40fcefb2K1xqVVT4D-p7nL2GzS4scg tools/sv/Main.rpy 2.874 40ffbcb66Dj5F-1kCK9BcgSqCWkt1w tools/sv/Makefile 2.875 +4120b0e5L_nW-u0MWRfIdXg4ng4OjA tools/sv/images/destroy.png 2.876 4107c921_OR9NTSv2dKFiLCXxrXoxA tools/sv/images/finish.png 2.877 40fcefb3wXQMsl9WkgQAVtdrupm4sw tools/sv/images/left-end-highlight.jpg 2.878 40fcefb3K6ESt5sQhD9aCQRscQIlXQ tools/sv/images/left-end-no-highlight.jpg 2.879 @@ -452,10 +761,86 @@ 40fcefb3qNbAZR5FYGPAZ9sFPVMTDA tools/sv/ 2.880 40fcefb3dgsa24WLk_BJeYQHrDLuOg tools/sv/images/seperator-right-highlight.jpg 2.881 40fcefb3FtiX4Pd2kT8wDlp8u8xRhQ tools/sv/images/seperator.jpg 2.882 41013a82sUdUqBv8EoAUJii3gsZ-4g tools/sv/images/shutdown.png 2.883 +4120b0e5RyNoIQNMjUs4A2kshovjaQ tools/sv/images/small-destroy.png 2.884 +4120b0e6vW66wW6WvjQyFD0AZH2tng tools/sv/images/small-pause.png 2.885 +4120b0e6USof7ieyGxEvtCdTMpxaQw tools/sv/images/small-unpause.png 2.886 4104ffca-jPHLVOrW0n0VghEXXtKxg tools/sv/images/unpause.png 2.887 40fcefb3yMSrZvApO9ToIi-iQwnchA tools/sv/images/xen.png 2.888 41013a83z27rKvWIxAfUBMVZ1eDCDg tools/sv/inc/script.js 2.889 40fcefb3zGC9XNBkSwTEobCoq8YClA tools/sv/inc/style.css 2.890 +41a21888_WlknVWjSxb32Fo13_ujsw tools/vnet/00README 2.891 +420a9b706I-bN_uPdiy0m3rmDifNNg tools/vnet/INSTALL 2.892 +41a21888bOiOJc7blzRbe4MNJoaYTw tools/vnet/Makefile 2.893 +41a21888mg2k5HeiVjlQYEtJBZT4Qg tools/vnet/doc/vnet-module.txt 2.894 +41a21888cuxfT8wjCdRR6V1lqf5NtA tools/vnet/doc/vnet-xend.txt 2.895 +41a21888xEQJAIGktS6XQ4xz2TyA5g tools/vnet/examples/Makefile 2.896 +41a21888FGQhPR5LJ1GRtOSIIN3QEw tools/vnet/examples/network-vnet 2.897 +41a21888QPgKrulCfR9SY_pxZKU0KA tools/vnet/examples/vnet97.sxp 2.898 +41a21888Gm0UBs1i7HqveT7Yz0u8DQ tools/vnet/examples/vnet98.sxp 2.899 +41a21888r4oGPuGv2Lxl-thgV3H54w tools/vnet/examples/vnet99.sxp 2.900 +41a21888c9TCRlUwJS9WBjB3e9aWgg tools/vnet/vnet-module/00README 2.901 +41a21888K2ItolEkksc1MUqyTDI_Kg tools/vnet/vnet-module/Makefile 2.902 +41a21888mJsFJD7bVMm-nrnWnalGBw tools/vnet/vnet-module/Makefile-2.4 2.903 +41a21888Znze3-UCCBZ-Nxpj-bNeHA tools/vnet/vnet-module/Makefile-2.6 2.904 +41a21889fwc1judJ7DYvyEviSJ3TPg tools/vnet/vnet-module/Makefile.ver 2.905 +41a21889m_sYkdODF3j5uhMP-Guy9Q tools/vnet/vnet-module/Makefile.vnet 2.906 +41a21889bXW2lC28U6KS_s5tOJ_W9Q tools/vnet/vnet-module/esp.c 2.907 +41a21889L2MfLDsUFQxstt-0frIVmw tools/vnet/vnet-module/esp.h 2.908 +41a21889V1jOsB2JExI-XQl720WHwg tools/vnet/vnet-module/etherip.c 2.909 +41a21889IpMYbNufHMDXe2ndNw4JxA tools/vnet/vnet-module/etherip.h 2.910 +41a21889LT9TNqO2EvTFIUTujrkX9w tools/vnet/vnet-module/if_etherip.h 2.911 +41a21889PESythGZFG6kmSoOkkN2Nw tools/vnet/vnet-module/if_varp.h 2.912 +41a21889nCPEomHqOyQ4vnhEm4II4g tools/vnet/vnet-module/linux/pfkeyv2.h 2.913 +41a21889A_fw4pRmCbBfZdtRunM5Eg tools/vnet/vnet-module/random.c 2.914 +41a218899Xy2dPKSu3pkuqaqkfKMTA tools/vnet/vnet-module/random.h 2.915 +41a21889rIH5S1dv8ygdSsTGNlg0JA tools/vnet/vnet-module/sa.c 2.916 +41a218896Z4vxy6gnV9h0fWRWu0lKQ tools/vnet/vnet-module/sa.h 2.917 +41a21889qFD8BTbDpB55uVmSVDEsgw tools/vnet/vnet-module/sa_algorithm.c 2.918 +41a21889r2AwTe-OCSSVMxBzz8uDtw tools/vnet/vnet-module/sa_algorithm.h 2.919 +41a21889tvjtL7O8tMveVB8MdSKPnQ tools/vnet/vnet-module/skb_context.c 2.920 +41a21889lD_QOUz2Msd7fB5rJQzfxA tools/vnet/vnet-module/skb_context.h 2.921 +41a21889F1r1xnJamzdeuClR8MNwQg tools/vnet/vnet-module/skb_util.c 2.922 +41a21889sS4bjVqEna24sS8NpV7SRA tools/vnet/vnet-module/skb_util.h 2.923 +41a21889MDawEK3J_f_oAGnZznhG2w tools/vnet/vnet-module/tunnel.c 2.924 +41a218896TlHXpVVqF50uz_u_WMXRw tools/vnet/vnet-module/tunnel.h 2.925 +41a21889nQYbJbqrOApg_RbkwPtXGg tools/vnet/vnet-module/varp.c 2.926 +41a21889Pev5MJlqqass6CxN4mmvPw tools/vnet/vnet-module/varp.h 2.927 +41a21889GbsHHfkpA-PkOvltfEwpMA tools/vnet/vnet-module/varp_socket.c 2.928 +41a21889sknn8zd5xCJlpQbs7MvxKg tools/vnet/vnet-module/vif.c 2.929 +41a21889VsKKWpe6rcXOSLPy2FuNWQ tools/vnet/vnet-module/vif.h 2.930 +41a21889dgkOyuSTVqy7D8TPIzrUyw tools/vnet/vnet-module/vnet.c 2.931 +41a21889ocAdwk7V1nNt4iBpmYW-Mw tools/vnet/vnet-module/vnet.h 2.932 +41a21889YrTiC0ArJSGFtiaHz2j1qQ tools/vnet/vnet-module/vnet_dev.c 2.933 +41a21889rHT4vrC4VAfk7-xP_K5aBg tools/vnet/vnet-module/vnet_dev.h 2.934 +41a21889qJj6GjT2f5hMHRvPS1AW4w tools/vnet/vnet-module/vnet_ioctl.c 2.935 +41a2188a8W4xYB0LYm512agtoEv52g tools/vnet/vnet-module/vnet_ioctl.h 2.936 +41a2188aFF_1T9OgpqUjjjaCqKB8lw tools/vnet/vnetd/Makefile 2.937 +41a2188a9j84qS4CxqMLVCvyGpA93w tools/vnet/vnetd/connection.c 2.938 +41a2188atexNEami9TNVYNkRSb7Bqg tools/vnet/vnetd/connection.h 2.939 +41a2188abgYpITSrWoMGHHrM56nklw tools/vnet/vnetd/marshal.c 2.940 +41a2188aUbOi5tAYwOS4aPixo1EGwQ tools/vnet/vnetd/marshal.h 2.941 +41a2188aDJlSVB1s_st2MSWxW8kMwg tools/vnet/vnetd/select.c 2.942 +41a2188aE9LUDdSSwNT3BWVWCvGSnQ tools/vnet/vnetd/select.h 2.943 +41a2188aTbMKv_Eig12dSrBUEBl1Jg tools/vnet/vnetd/timer.c 2.944 +41a2188aIzBGqQ6DUVzCxfBsN0Q6Ww tools/vnet/vnetd/timer.h 2.945 +41a2188aIf3Xk6uvk7KzjdpOsflAEw tools/vnet/vnetd/vcache.c 2.946 +41a2188ar6_vOO3_tEJQjmFVU3409A tools/vnet/vnetd/vcache.h 2.947 +41a2188aETrGU60X9WtGhYVfU7z0Pw tools/vnet/vnetd/vnetd.c 2.948 +41a2188ahYjemudGyB7078AWMFR-0w tools/vnet/vnetd/vnetd.h 2.949 +4194e861IgTabTt8HOuh143QIJFD1Q tools/x2d2/Makefile 2.950 +4194e861M2gcBz4i94cQYpqzi8n6UA tools/x2d2/cntrl_con.c 2.951 +4194e8612TrrMvC8ZlA4h2ZYCPWz4g tools/x2d2/minixend.c 2.952 +4194e861x2eqNCD61RYPCUEBVdMYuw tools/x2d2/minixend.h 2.953 +4194e861A4V9VbD_FYmgXpYEj5YwVg tools/x2d2/util.c 2.954 +41d58ba63w1WfBmd6Cr_18nhLNv7PA tools/xcs/Makefile 2.955 +41d58ba6NxgkfzD_rmsGjgd_zJ3H_w tools/xcs/bindings.c 2.956 +41d58ba6I2umi60mShq4Pl0RDg7lzQ tools/xcs/connection.c 2.957 +41d58ba6YyYu53bFuoIAw9hNNmneEg tools/xcs/ctrl_interface.c 2.958 +41d58ba6Ru9ZbhTjgYX_oiszSIwCww tools/xcs/evtchn.c 2.959 +41d58ba6x9KO1CQBT7kKOKq_pJYC3g tools/xcs/xcs.c 2.960 +41d58ba6R6foSMtSFEcu-yxWFrT8VQ tools/xcs/xcs.h 2.961 +41d58ba6qyr2BkTcH2WlNBYLRyl2Yw tools/xcs/xcs_proto.h 2.962 +41d58ba6ijEF6fedqRO5vFu7uCirZg tools/xcs/xcsdump.c 2.963 403a3edbrr8RE34gkbR40zep98SXbg tools/xentrace/Makefile 2.964 40a107afN60pFdURgBv9KwEzgRl5mQ tools/xentrace/formats 2.965 4050c413PhhLNAYk3TEwP37i_iLw9Q tools/xentrace/xentrace.8 2.966 @@ -467,22 +852,13 @@ 40e9808epTR4zWrYjGUnaaynK20Q5A tools/xfr 2.967 40e9808eysqT4VNDlJFqsZB2rdg4Qw tools/xfrd/connection.c 2.968 40e9808eyXfJUi4E0C3WSgrEXqQ1sQ tools/xfrd/connection.h 2.969 40e9808eULGwffNOE4kBrAfZ9YAVMA tools/xfrd/debug.h 2.970 -40e9808eyjiahG5uF6AMelNVujBzCg tools/xfrd/enum.c 2.971 -40e9808eZpbdn9q2KSSMGCNvY_ZgpQ tools/xfrd/enum.h 2.972 -40e9808easXCzzAZQodEfKAhgUXSPA tools/xfrd/hash_table.c 2.973 -40e9808e94BNXIVVKBFHC3rnkvwtJg tools/xfrd/hash_table.h 2.974 -40e9808epW9iHcLXuO3QfUfLzB7onw tools/xfrd/lexis.c 2.975 -40e9808egccMhCizayQRGtpBA3L5MQ tools/xfrd/lexis.h 2.976 +411b5139tfKZfWs1LQHmwDR_wjKoxQ tools/xfrd/http.h 2.977 40e9808ePADCSKL1YgGCt2TbYPnYkw tools/xfrd/lzi_stream.c 2.978 40e9808eDNAdpF71o5teYb9DTT-PRw tools/xfrd/lzi_stream.h 2.979 40e9808eQxi0EzTcPJtosrzxEIjA-Q tools/xfrd/marshal.c 2.980 40e9808etg13xfRm0Lqd8vY-jHOoTg tools/xfrd/marshal.h 2.981 40e9808eCsmywryb036TdtRMJHDMmQ tools/xfrd/select.c 2.982 40e9808e99OcM547cKMTfmCVSoWVAw tools/xfrd/select.h 2.983 -40e9808e5_PLdodqVOSx0b4T_f5aeg tools/xfrd/sxpr.c 2.984 -40e9808e0O4sHZtkDv5hlSqjYcdQAQ tools/xfrd/sxpr.h 2.985 -40ec1cc6SIiGbynOi-1NtPesOlzF-Q tools/xfrd/sxpr_parser.c 2.986 -40ec1cc6wpvvGxZiq4EFvNOcw0tUFg tools/xfrd/sxpr_parser.h 2.987 40e9808eF3NVldqRNS5IHM8gbFAvpw tools/xfrd/xdr.c 2.988 40e9808ezXzoRHm7pybXU69NtnjimA tools/xfrd/xdr.h 2.989 40e9808edpUtf4bJ8IbqClPJj_OvbA tools/xfrd/xen_domain.c 2.990 @@ -493,6 +869,11 @@ 40e9808eHXvs_5eggj9McD_J90mhNw tools/xfr 2.991 3f72f1bdJPsV3JCnBqs9ddL9tr6D2g xen/COPYING 2.992 3ddb79bcbOVHh38VJzc97-JEGD4dJQ xen/Makefile 2.993 3ddb79bcWnTwYsQRWl_PaneJfa6p0w xen/Rules.mk 2.994 +41a26ebcqaSGVQ8qTMwpPwOJSJ7qSw xen/arch/ia64/privop.c 2.995 +41a26ebc4BOHDUsT0TSnryPeV2xfRA xen/arch/ia64/process.c 2.996 +41a26ebcJ30TFl1v2kR8rqpEBvOtVw xen/arch/ia64/regionreg.c 2.997 +41a26ebc--sjlYZQxmIxyCx3jw70qA xen/arch/ia64/vcpu.c 2.998 +41a26ebc4jSBGQOuyNIPDST58mNbBw xen/arch/ia64/xenasm.S 2.999 3ddb79bcZbRBzT3elFWSX7u6NtMagQ xen/arch/x86/Makefile 2.1000 3ddb79bcBQF85CfLS4i1WGZ4oLLaCA xen/arch/x86/Rules.mk 2.1001 3e5636e5FAYZ5_vQnmgwFJfSdmO5Mw xen/arch/x86/acpi.c 2.1002 @@ -503,6 +884,7 @@ 40e42bdbNu4MjI750THP_8J1S-Sa0g xen/arch/ 2.1003 3ddb79bcUrk2EIaM5VsT6wUudH1kkg xen/arch/x86/delay.c 2.1004 40e34414WiQO4h2m3tcpaCPn7SyYyg xen/arch/x86/dom0_ops.c 2.1005 3ddb79bc1_2bAt67x9MFCP4AZrQnvQ xen/arch/x86/domain.c 2.1006 +41d3eaae6GSDo3ZJDfK3nvQsJux-PQ xen/arch/x86/e820.c 2.1007 3ddb79bcY5zW7KhvI9gvfuPi3ZumEg xen/arch/x86/extable.c 2.1008 3fe443fdDDb0Sw6NQBCk4GQapayfTA xen/arch/x86/flushtlb.c 2.1009 3ddb79bcesE5E-lS4QhRhlqXxqj9cA xen/arch/x86/i387.c 2.1010 @@ -510,15 +892,21 @@ 3ddb79bcCAq6IpdkHueChoVTfXqEQQ xen/arch/ 2.1011 3ddb79bcBit4xJXbwtX0kb1hh2uO1Q xen/arch/x86/idle0_task.c 2.1012 3ddb79bcKIkRR0kqWaJhe5VUDkMdxg xen/arch/x86/io_apic.c 2.1013 3ddb79bdqfIcjkz_h9Hvtp8Tk_19Zw xen/arch/x86/irq.c 2.1014 -40ec29ffuOa1ZvmJHzFKyZn4k_RcXg xen/arch/x86/memory.c 2.1015 +41d54a76qfpO0VnbL2tYs0Jgt3W3XA xen/arch/x86/microcode.c 2.1016 +40ec29ffuOa1ZvmJHzFKyZn4k_RcXg xen/arch/x86/mm.c 2.1017 3ddb79bdS4UeWWXDH-FaBKqcpMFcnw xen/arch/x86/mpparse.c 2.1018 +41aaf566Z4sTDgJ77eEg0TzzQ1ka6Q xen/arch/x86/mtrr/amd.c 2.1019 +41aaf566TOpOBXT00wwQGUh20f1rlA xen/arch/x86/mtrr/centaur.c 2.1020 +41aaf566yhr0zKYnGVSOQpkWMM0Kiw xen/arch/x86/mtrr/cyrix.c 2.1021 +41aaf567t3hFKsyfEFoy3KAnB-bj8w xen/arch/x86/mtrr/generic.c 2.1022 +41aaf567tqrKGSTDK8OVeAbpeoccPw xen/arch/x86/mtrr/main.c 2.1023 +41aaf567a36esU-rUK7twPiv-yTFyw xen/arch/x86/mtrr/mtrr.h 2.1024 +41aaf567DcTL6pqVtLZJI5cSryyA1A xen/arch/x86/mtrr/state.c 2.1025 3f12cff65EV3qOG2j37Qm0ShgvXGRw xen/arch/x86/nmi.c 2.1026 3ddb79bdHe6_Uij4-glW91vInNtBYQ xen/arch/x86/pci-irq.c 2.1027 3ddb79bcZ_2FxINljqNSkqa17ISyJw xen/arch/x86/pci-pc.c 2.1028 3ddb79bdeJ7_86z03yTAPIeeywOg3Q xen/arch/x86/pci-x86.c 2.1029 3ddb79bdIKgipvGoqExEQ7jawfVowA xen/arch/x86/pci-x86.h 2.1030 -40a4dfced2dnSzbKgJFlD3chKHexjQ xen/arch/x86/pdb-linux.c 2.1031 -4022a73czgX7d-2zfF_cb33oVemApQ xen/arch/x86/pdb-stub.c 2.1032 3ddb79bc7KxGCEJsgBnkDX7XjD_ZEQ xen/arch/x86/rwlock.c 2.1033 3ddb79bcrD6Z_rUvSDgrvjyb4846Eg xen/arch/x86/setup.c 2.1034 405b8599xI_PoEr3zZoJ2on-jdn7iw xen/arch/x86/shadow.c 2.1035 @@ -527,44 +915,54 @@ 3ddb79bcfUN3-UBCPzX26IU8bq-3aw xen/arch/ 2.1036 3ddb79bc-Udq7ol-NX4q9XsYnN7A2Q xen/arch/x86/time.c 2.1037 3ddb79bccYVzXZJyVaxuv5T42Z1Fsw xen/arch/x86/trampoline.S 2.1038 3ddb79bcOftONV9h4QCxXOfiT0h91w xen/arch/x86/traps.c 2.1039 +41c0c411tD3C7TpfDMiFTf7BaNd_Dg xen/arch/x86/vmx.c 2.1040 +420951dcf1rSGnCH0AEYN2KjWGLG6A xen/arch/x86/vmx_intercept.c 2.1041 +41c0c411ODt8uEmV-yUxpQLpqimE5Q xen/arch/x86/vmx_io.c 2.1042 +41f97ef5139vN42cOYHfX_Ac8WOOjA xen/arch/x86/vmx_platform.c 2.1043 +41c0c4128URE0dxcO15JME_MuKBPfg xen/arch/x86/vmx_vmcs.c 2.1044 +419cbedeQDg8IrO3izo3o5rQNlo0kQ xen/arch/x86/x86_32/asm-offsets.c 2.1045 +4202391dkvdTZ8GhWXe3Gqf9EOgWXg xen/arch/x86/x86_32/domain_build.c 2.1046 3e32af9aRnYGl4GMOaDKp7JdfhOGhg xen/arch/x86/x86_32/domain_page.c 2.1047 -40f92331jfOlE7MfKwpdkEb1CEf23g xen/arch/x86/x86_32/emulate.c 2.1048 3ddb79bcecupHj56ZbTa3B0FxDowMg xen/arch/x86/x86_32/entry.S 2.1049 3ddb79bcHwuCQDjBICDTSis52hWguw xen/arch/x86/x86_32/mm.c 2.1050 +40f92331jfOlE7MfKwpdkEb1CEf23g xen/arch/x86/x86_32/seg_fixup.c 2.1051 +42000d3ckiFc1qxa4AWqsd0t3lxuyw xen/arch/x86/x86_32/traps.c 2.1052 3ddb79bc4nTpGQOe6_-MbyZzkhlhFQ xen/arch/x86/x86_32/usercopy.c 2.1053 4107c15e_NqNYew2EXroXz2mgTAMWQ xen/arch/x86/x86_32/xdb_trap.S 2.1054 3ddb79bcOMCu9-5mKpjIh5d0qqBDPg xen/arch/x86/x86_32/xen.lds 2.1055 +41bf1717Ty3hwN3E9swdu8QfnvGqww xen/arch/x86/x86_64/asm-offsets.c 2.1056 +4202391dA91ZovYX9d_5zJi9yGvLoQ xen/arch/x86/x86_64/domain_build.c 2.1057 40e96d3aLDI-nViMuYneD7VKYlZrVg xen/arch/x86/x86_64/entry.S 2.1058 +41bf1717XhPz_dNT5OKSjgmbFuWBuA xen/arch/x86/x86_64/mm.c 2.1059 +42000d3cMb8o1WuFBXC07c8i3lPZBw xen/arch/x86/x86_64/traps.c 2.1060 40e96d3ahBTZqbTViInnq0lM03vs7A xen/arch/x86/x86_64/usercopy.c 2.1061 40e96d3akN3Hu_J5Bk-WXD8OGscrYQ xen/arch/x86/x86_64/xen.lds 2.1062 4107c15e-VmEcLsE-7JCXZaabI8C7A xen/arch/x86/xdb.c 2.1063 3ddb79bdff-gj-jFGKjOejeHLqL8Lg xen/common/Makefile 2.1064 3e397e66AyyD5fYraAySWuwi9uqSXg xen/common/ac_timer.c 2.1065 -4022a73c_BbDFd2YJ_NQYVvKX5Oz7w xen/common/debug-linux.c 2.1066 -3fa152581E5KhrAtqZef2Sr5NKTz4w xen/common/debug.c 2.1067 3ddb79bdLX_P6iB7ILiblRLWvebapg xen/common/dom0_ops.c 2.1068 3e6377e4i0c9GtKN65e99OtRbw3AZw xen/common/dom_mem_ops.c 2.1069 3ddb79bdYO5D8Av12NHqPeSviav7cg xen/common/domain.c 2.1070 40f2b4a27xPOh3R6zD4M_aabz-TDyg xen/common/elf.c 2.1071 3fba5b96H0khoxNiKbjdi0inpXV-Pw xen/common/event_channel.c 2.1072 +41262590gGIOn-1pvF5KpUu8Wb6_JA xen/common/grant_table.c 2.1073 3ddb79bd9drcFPVxd4w2GPOIjLlXpA xen/common/kernel.c 2.1074 3e4cd9d8LAAghUY0hNIK72uc2ch_Nw xen/common/keyhandler.c 2.1075 3ddb79bduhSEZI8xa7IbGQCpap5y2A xen/common/lib.c 2.1076 -3ddb79bdS39UXxUtZnaScie83-7VTQ xen/common/memory.c 2.1077 +41a61536SZbR6cj1ukWTb0DYU-vz9w xen/common/multicall.c 2.1078 3ddb79bdD4SLmmdMD7yLW5HcUWucXw xen/common/page_alloc.c 2.1079 3e54c38dkHAev597bPr71-hGzTdocg xen/common/perfc.c 2.1080 4051bcecFeq4DE70p4zGO5setf47CA xen/common/physdev.c 2.1081 3ddb79bdHqdQpATqC0rmUZNbsb6L6A xen/common/resource.c 2.1082 4064773cJ31vZt-zhbSoxqft1Jaw0w xen/common/sched_atropos.c 2.1083 40589968dD2D1aejwSOvrROg7fOvGQ xen/common/sched_bvt.c 2.1084 -40ec1922He_dRhVJdOicTcHvT8v1NQ xen/common/sched_fair_bvt.c 2.1085 40589968be_t_n0-w6ggceW7h-sx0w xen/common/sched_rrobin.c 2.1086 3e397e6619PgAfBbw2XFbXkewvUWgw xen/common/schedule.c 2.1087 -3ddb79bdB9RNMnkQnUyZ5C9hhMSQQw xen/common/slab.c 2.1088 3ddb79bd0gVQYmL2zvuJnldvD0AGxQ xen/common/softirq.c 2.1089 3e7f358awXBC3Vw-wFRwPw18qL1khg xen/common/string.c 2.1090 403a3edbejm33XLTGMuinKEwQBrOIg xen/common/trace.c 2.1091 3ddb79bd3zgV33PHdt-cgh3sxcb1hw xen/common/vsprintf.c 2.1092 +4203fb92Qcy7mGpauBdq09J-WAqfoA xen/common/xmalloc.c 2.1093 3ddb79c0ppNeJtjC4va8j41ADCnchA xen/drivers/Makefile 2.1094 40715b2bi9gU43-cYzlmPDgreYQchw xen/drivers/acpi/Makefile 2.1095 40715b2bDxNCz5LFV8FAXihmYJZFUQ xen/drivers/acpi/acpi_ksyms.c 2.1096 @@ -579,15 +977,7 @@ 3ddb79bfoQcFKLf5P6wZlDl36alWdQ xen/drive 2.1097 3ddb79bfyX7-pD6XdxY_mdNrJR20iw xen/drivers/pci/pci.c 2.1098 3ddb79bf2AS7YBGwooE_Kbv7XgUqNQ xen/drivers/pci/pci.ids 2.1099 3ddb79bf7sTn85WtP_8Nc2YEmmVExQ xen/drivers/pci/quirks.c 2.1100 -3ddb79bfkVLMq5CWjZLACPDivqxq_w xen/drivers/pci/setup-bus.c 2.1101 -3ddb79bfl1H1arbB0pzAEC2uPmY_3g xen/drivers/pci/setup-irq.c 2.1102 3ddb79bfJaf0bkE1Y67bnll8-kjEPg xen/drivers/pci/setup-res.c 2.1103 -3ddb79bfIcCWJsBDNcQQE3ok2Azn-Q xen/drivers/pci/syscall.c 2.1104 -3eb3c87fc79FXLA6R9TvdBJNTvQDwA xen/figlet/LICENSE 2.1105 -3eb3c87fPL2T_zBb0bHlbZY-ACEKRw xen/figlet/Makefile 2.1106 -3eb3c87fmKYTC5GCh_rydFakZp9ayw xen/figlet/README 2.1107 -3eb3c87fdQKQ5OBGbM-KjZfi9Us4ng xen/figlet/figlet.c 2.1108 -3eb3c87fS7DNbg0i6yhFs28UIqAK5g xen/figlet/xen.flf 2.1109 40715b2cFpte_UNWnBZW0Du7z9AhTQ xen/include/acpi/acconfig.h 2.1110 40715b2cEQWX-PaxEH30qI48K1krnQ xen/include/acpi/acdebug.h 2.1111 40715b2c_7j-oy3ZNAuqE3IFNPzArg xen/include/acpi/acdisasm.h 2.1112 @@ -625,22 +1015,26 @@ 40715b2d1yZkqyAt0kgx2xEwsatuuA xen/inclu 2.1113 40715b2dWe0tDhx9LkLXzTQkvD49RA xen/include/asm-x86/acpi.h 2.1114 3ddb79c3l4IiQtf6MS2jIzcd-hJS8g xen/include/asm-x86/apic.h 2.1115 3ddb79c3QJYWr8LLGdonLbWmNb9pQQ xen/include/asm-x86/apicdef.h 2.1116 +41bf17171g_hhz2k4B-fN9LQlODDjQ xen/include/asm-x86/asm_defns.h 2.1117 3ddb79c3OiG9eTsi9Dy3F_OkuRAzKA xen/include/asm-x86/atomic.h 2.1118 3ddb79c3rM-Ote0Xn6Ytg8Y6YqAG-A xen/include/asm-x86/bitops.h 2.1119 3ddb79c3KhTI0F_Iw_hRL9QEyOVK-g xen/include/asm-x86/cache.h 2.1120 404f1b920OQVnrbnXnySS-WxrH9Wzw xen/include/asm-x86/config.h 2.1121 3ddb79c2LLt11EQHjrd6sB7FUqvFfA xen/include/asm-x86/cpufeature.h 2.1122 40cf1596ajIU1KJfF22XD-tSLfH6XA xen/include/asm-x86/current.h 2.1123 +4194efbdvxUXjCLobbopgLOojisO4Q xen/include/asm-x86/debugger.h 2.1124 3ddb79c2jFkPAZTDmU35L6IUssYMgQ xen/include/asm-x86/debugreg.h 2.1125 3ddb79c3r9-31dIsewPV3P3i8HALsQ xen/include/asm-x86/delay.h 2.1126 3ddb79c34BFiXjBJ_cCKB0aCsV1IDw xen/include/asm-x86/desc.h 2.1127 40715b2dTokMLYGSuD58BnxOqyWVew xen/include/asm-x86/div64.h 2.1128 -40f2b4a2hC3HtChu-ArD8LyojxWMjg xen/include/asm-x86/domain.h 2.1129 -3e20b82fl1jmQiKdLy7fxMcutfpjWA xen/include/asm-x86/domain_page.h 2.1130 +4204e7acwzqgXyTAPKa1nM-L7Ec0Qw xen/include/asm-x86/domain.h 2.1131 +41febc4bBKTKHhnAu_KPYwgNkHjFlg xen/include/asm-x86/domain_page.h 2.1132 +41d3eaaeIBzW621S1oa0c2yk7X43qQ xen/include/asm-x86/e820.h 2.1133 3ddb79c3NU8Zy40OTrq3D-i30Y3t4A xen/include/asm-x86/fixmap.h 2.1134 3e2d29944GI24gf7vOP_7x8EyuqxeA xen/include/asm-x86/flushtlb.h 2.1135 3ddb79c39o75zPP0T1aQQ4mNrCAN2w xen/include/asm-x86/hardirq.h 2.1136 3ddb79c3TMDjkxVndKFKnGiwY0HzDg xen/include/asm-x86/i387.h 2.1137 +4204e7acwXDo-5iAAiO2eQbtDeYZXA xen/include/asm-x86/init.h 2.1138 3ddb79c3fQ_O3o5NHK2N8AJdk0Ea4Q xen/include/asm-x86/io.h 2.1139 3ddb79c2TKeScYHQZreTdHqYNLbehQ xen/include/asm-x86/io_apic.h 2.1140 3ddb79c2L7rTlFzazOLW1XuSZefpFw xen/include/asm-x86/irq.h 2.1141 @@ -649,12 +1043,12 @@ 3ddb79c3I98vWcQR8xEo34JMJ4Ahyw xen/inclu 2.1142 40ec25fd7cSvbP7Biw91zaU_g0xsEQ xen/include/asm-x86/mm.h 2.1143 3ddb79c3n_UbPuxlkNxvvLycClIkxA xen/include/asm-x86/mpspec.h 2.1144 3ddb79c2wa0dA_LGigxOelSGbJ284Q xen/include/asm-x86/msr.h 2.1145 +41aaf567Mi3OishhvrCtET1y-mxQBg xen/include/asm-x86/mtrr.h 2.1146 +41a61536MFhNalgbVmYGXAhQsPTZNw xen/include/asm-x86/multicall.h 2.1147 3ddb79c3xjYnrv5t3VqYlR4tNEOl4Q xen/include/asm-x86/page.h 2.1148 3ddb79c3ysKUbxZuwKBRK3WXU2TlEg xen/include/asm-x86/pci.h 2.1149 -404f1bb41Yl-5ZjIWnG66HDCj6OIWA xen/include/asm-x86/pda.h 2.1150 -4022a73diKn2Ax4-R4gzk59lm1YdDg xen/include/asm-x86/pdb.h 2.1151 3ddb79c2QF5-pZGzuX4QukPCDAl59A xen/include/asm-x86/processor.h 2.1152 -40cf1596bim9F9DNdV75klgRSZ6Y2A xen/include/asm-x86/ptrace.h 2.1153 +40cf1596bim9F9DNdV75klgRSZ6Y2A xen/include/asm-x86/regs.h 2.1154 3ddb79c2plf7ciNgoNjU-RsbUzawsw xen/include/asm-x86/rwlock.h 2.1155 405b8599BsDsDwKEJLS0XipaiQW3TA xen/include/asm-x86/shadow.h 2.1156 3ddb79c3Hgbb2g8CyWLMCK-6_ZVQSQ xen/include/asm-x86/smp.h 2.1157 @@ -662,41 +1056,60 @@ 3ddb79c3jn8ALV_S9W5aeTYUQRKBpg xen/inclu 2.1158 3ddb79c3NiyQE2vQnyGiaBnNjBO1rA xen/include/asm-x86/spinlock.h 2.1159 40e1966akOHWvvunCED7x3HPv35QvQ xen/include/asm-x86/string.h 2.1160 3ddb79c3ezddh34MdelJpa5tNR00Dw xen/include/asm-x86/system.h 2.1161 +42033fc1Bb8ffTshBYFGouGkiAMoUQ xen/include/asm-x86/time.h 2.1162 3ddb79c4HugMq7IYGxcQKFBpKwKhzA xen/include/asm-x86/types.h 2.1163 40cf1596saFaHD5DC5zvrSn7CDCWGQ xen/include/asm-x86/uaccess.h 2.1164 +41c0c412k6GHYF3cJtDdw37ee3TVaw xen/include/asm-x86/vmx.h 2.1165 +41c0c412hck3QX-6_MaXaISGkngQuA xen/include/asm-x86/vmx_cpu.h 2.1166 +420951dcGoqsqnmjjAtEtm6-3dM9KA xen/include/asm-x86/vmx_intercept.h 2.1167 +41c0c41243jC1mcArZx_t3YkBL4lTA xen/include/asm-x86/vmx_platform.h 2.1168 +420951dcqyUCe_gXA_XJPu1ix_poKg xen/include/asm-x86/vmx_virpit.h 2.1169 +41c0c412lQ0NVVN9PsOSznQ-qhOiPA xen/include/asm-x86/vmx_vmcs.h 2.1170 +418fbcfe_WliJPToeVM-9VStvym-hw xen/include/asm-x86/x86_32/asm_defns.h 2.1171 3ddb79c2ADvRmdexd9y3AYK9_NTx-Q xen/include/asm-x86/x86_32/current.h 2.1172 -3ddb79c3mbqEM7QQr3zVq7NiBNhouA xen/include/asm-x86/x86_32/ptrace.h 2.1173 +3e20b82fl1jmQiKdLy7fxMcutfpjWA xen/include/asm-x86/x86_32/domain_page.h 2.1174 +4208e2a3ZNFroNXbX9OYaOB-xtUyDQ xen/include/asm-x86/x86_32/page.h 2.1175 +3ddb79c3mbqEM7QQr3zVq7NiBNhouA xen/include/asm-x86/x86_32/regs.h 2.1176 3e7f358aG11EvMI9VJ4_9hD4LUO7rQ xen/include/asm-x86/x86_32/string.h 2.1177 3ddb79c3M2n1ROZH6xk3HbyN4CPDqg xen/include/asm-x86/x86_32/uaccess.h 2.1178 +41bf1717bML6GxpclTWJabiaO5W5vg xen/include/asm-x86/x86_64/asm_defns.h 2.1179 404f1b9ceJeGVaPNIENm2FkK0AgEOQ xen/include/asm-x86/x86_64/current.h 2.1180 -404f1b9fl6AQ_a-T1TDK3fuwTPXmHw xen/include/asm-x86/x86_64/desc.h 2.1181 +41febc4b1aCGLsm0Y0b_82h7lFtrEA xen/include/asm-x86/x86_64/domain_page.h 2.1182 404f1badfXZJZ2sU8sh9PS2EZvd19Q xen/include/asm-x86/x86_64/ldt.h 2.1183 -404f1bb86rAXB3aLS1vYdcqpJiEcyg xen/include/asm-x86/x86_64/ptrace.h 2.1184 +4208e2a3Fktw4ZttKdDxbhvTQ6brfQ xen/include/asm-x86/x86_64/page.h 2.1185 +404f1bb86rAXB3aLS1vYdcqpJiEcyg xen/include/asm-x86/x86_64/regs.h 2.1186 40e1966azOJZfNI6Ilthe6Q-T3Hewg xen/include/asm-x86/x86_64/string.h 2.1187 404f1bc4tWkB9Qr8RkKtZGW5eMQzhw xen/include/asm-x86/x86_64/uaccess.h 2.1188 -400304fcmRQmDdFYEzDh0wcBba9alg xen/include/hypervisor-ifs/COPYING 2.1189 -404f1bc68SXxmv0zQpXBWGrCzSyp8w xen/include/hypervisor-ifs/arch-x86_32.h 2.1190 -404f1bc7IwU-qnH8mJeVu0YsNGMrcw xen/include/hypervisor-ifs/arch-x86_64.h 2.1191 -3ddb79c2PMeWTK86y4C3F4MzHw4A1g xen/include/hypervisor-ifs/dom0_ops.h 2.1192 -403cd194j2pyLqXD8FJ-ukvZzkPenw xen/include/hypervisor-ifs/event_channel.h 2.1193 -3ddb79c25UE59iu4JJcbRalx95mvcg xen/include/hypervisor-ifs/hypervisor-if.h 2.1194 -40f5623bqoi4GEoBiiUc6TZk1HjsMg xen/include/hypervisor-ifs/io/blkif.h 2.1195 -40dc4076pVeE1kEEWzcUaNZin65kCA xen/include/hypervisor-ifs/io/domain_controller.h 2.1196 -40f5623cTZ80EwjWUBlh44A9F9i_Lg xen/include/hypervisor-ifs/io/netif.h 2.1197 -4051db79512nOCGweabrFWO2M2h5ng xen/include/hypervisor-ifs/physdev.h 2.1198 -40589968wmhPmV5-ENbBYmMjnedgKw xen/include/hypervisor-ifs/sched_ctl.h 2.1199 -404f3d2eR2Owk-ZcGOx9ULGHg3nrww xen/include/hypervisor-ifs/trace.h 2.1200 +400304fcmRQmDdFYEzDh0wcBba9alg xen/include/public/COPYING 2.1201 +404f1bc68SXxmv0zQpXBWGrCzSyp8w xen/include/public/arch-x86_32.h 2.1202 +404f1bc7IwU-qnH8mJeVu0YsNGMrcw xen/include/public/arch-x86_64.h 2.1203 +3ddb79c2PMeWTK86y4C3F4MzHw4A1g xen/include/public/dom0_ops.h 2.1204 +403cd194j2pyLqXD8FJ-ukvZzkPenw xen/include/public/event_channel.h 2.1205 +4121d149udGfSUGhn3k1ECz0bM31nQ xen/include/public/grant_table.h 2.1206 +40f5623bqoi4GEoBiiUc6TZk1HjsMg xen/include/public/io/blkif.h 2.1207 +40dc4076pVeE1kEEWzcUaNZin65kCA xen/include/public/io/domain_controller.h 2.1208 +41c0c412FLc0gunlJl91qMYscFtXVA xen/include/public/io/ioreq.h 2.1209 +40f5623cTZ80EwjWUBlh44A9F9i_Lg xen/include/public/io/netif.h 2.1210 +41d40e9b8zCk5VDqhVbuQyhc7G3lqA xen/include/public/io/ring.h 2.1211 +41ee5e8c6mLxIx82KPsbpt_uts_vSA xen/include/public/io/usbif.h 2.1212 +4051db79512nOCGweabrFWO2M2h5ng xen/include/public/physdev.h 2.1213 +40589968wmhPmV5-ENbBYmMjnedgKw xen/include/public/sched_ctl.h 2.1214 +404f3d2eR2Owk-ZcGOx9ULGHg3nrww xen/include/public/trace.h 2.1215 +3ddb79c25UE59iu4JJcbRalx95mvcg xen/include/public/xen.h 2.1216 3e397e66m2tO3s-J8Jnr7Ws_tGoPTg xen/include/xen/ac_timer.h 2.1217 40715b2epYl2jBbxzz9CI2rgIca7Zg xen/include/xen/acpi.h 2.1218 3ddb79c0c0cX_DZE209-Bb-Rx1v-Aw xen/include/xen/cache.h 2.1219 +41f2cea7Yna7xc0X9fyavIjoSFFeVg xen/include/xen/compile.h.in 2.1220 3f840f12CkbYSlwMrY2S11Mpyxg7Nw xen/include/xen/compiler.h 2.1221 3ddb79c259jh8hE7vre_8NuE7nwNSA xen/include/xen/config.h 2.1222 3eb165e0eawr3R-p2ZQtSdLWtLRN_A xen/include/xen/console.h 2.1223 3ddb79c1V44RD26YqCUm-kqIupM37A xen/include/xen/ctype.h 2.1224 3ddb79c05DdHQ0UxX_jKsXdR4QlMCA xen/include/xen/delay.h 2.1225 +40f2b4a2hC3HtChu-ArD8LyojxWMjg xen/include/xen/domain.h 2.1226 3ddb79c2O729EttZTYu1c8LcsUO_GQ xen/include/xen/elf.h 2.1227 3ddb79c0HIghfBF8zFUdmXhOU8i6hA xen/include/xen/errno.h 2.1228 3ddb79c1W0lQca8gRV7sN6j3iY4Luw xen/include/xen/event.h 2.1229 +41262590CyJy4vd42dnqzsn8-eeGvw xen/include/xen/grant_table.h 2.1230 3ddb79c0GurNF9tDWqQbAwJFH8ugfA xen/include/xen/init.h 2.1231 3ddb79c1nzaWu8NoF4xCCMSFJR4MlA xen/include/xen/ioport.h 2.1232 3ddb79c2qAxCOABlkKtD8Txohe-qEw xen/include/xen/irq.h 2.1233 @@ -707,6 +1120,7 @@ 3ddb79c1NfYlOrWNqgZkj9EwtFfJow xen/inclu 2.1234 3ddb79c18Ajy7micDGQQfJ0zWgEHtA xen/include/xen/list.h 2.1235 3ddb79c1gs2VbLbQlw0dcDUXYIepDA xen/include/xen/mm.h 2.1236 3ddb79c1ieLZfGSFwfvvSQ2NK1BMSg xen/include/xen/multiboot.h 2.1237 +41a61536ii6j2lJ2rXwMOLaG1CHPvw xen/include/xen/multicall.h 2.1238 3ddb79c2Fg44_PBPVxHSC0gTOMq4Ow xen/include/xen/pci.h 2.1239 3ddb79c0MOVXq8qZDQRGb6z64_xAwg xen/include/xen/pci_ids.h 2.1240 3e54c38dlSCVdyVM4PKcrSfzLLxWUQ xen/include/xen/perfc.h 2.1241 @@ -724,3 +1138,9 @@ 3e7f358aMtFMUVvN_Zjg5qvEJIqEBA xen/inclu 2.1242 3ddb79c0BnA20PbgmuMPSGIBljNRQw xen/include/xen/time.h 2.1243 403a3edbG9K5uZjuY19_LORbQGmFbA xen/include/xen/trace.h 2.1244 3ddb79c1-kVvF8cVa0k3ZHDdBMj01Q xen/include/xen/types.h 2.1245 +41d291f5u3J3HYViXLs3cNuFGTvzNg xen/tools/Makefile 2.1246 +3eb3c87fc79FXLA6R9TvdBJNTvQDwA xen/tools/figlet/LICENSE 2.1247 +3eb3c87fPL2T_zBb0bHlbZY-ACEKRw xen/tools/figlet/Makefile 2.1248 +3eb3c87fmKYTC5GCh_rydFakZp9ayw xen/tools/figlet/README 2.1249 +3eb3c87fdQKQ5OBGbM-KjZfi9Us4ng xen/tools/figlet/figlet.c 2.1250 +3eb3c87fS7DNbg0i6yhFs28UIqAK5g xen/tools/figlet/xen.flf
3.1 --- a/BitKeeper/etc/ignore Fri Aug 06 12:20:20 2004 +0000 3.2 +++ b/BitKeeper/etc/ignore Thu Feb 10 13:17:10 2005 +0000 3.3 @@ -1,54 +1,102 @@ 3.4 *.a 3.5 *.d 3.6 *.o 3.7 +*.opic 3.8 *.pyc 3.9 *.so 3.10 *.so.* 3.11 *.tar.bz2 3.12 *.tar.gz 3.13 *~ 3.14 +BLOG 3.15 BitKeeper/*/* 3.16 PENDING/* 3.17 TAGS 3.18 -Twisted-1.3.0 3.19 Twisted-1.3.0.tar.gz 3.20 +Twisted-1.3.0/* 3.21 +dist/* 3.22 docs/*.aux 3.23 +docs/*.dvi 3.24 docs/*.log 3.25 docs/*.pdf 3.26 docs/*.ps 3.27 docs/*.toc 3.28 -docs/interface/* 3.29 -docs/user/* 3.30 +docs/figs/xenserver.eps 3.31 +docs/html/* 3.32 +docs/interface/WARNINGS 3.33 +docs/interface/images.pl 3.34 +docs/interface/images.tex 3.35 +docs/interface/img1.png 3.36 +docs/interface/index.html 3.37 +docs/interface/interface.css 3.38 +docs/interface/interface.html 3.39 +docs/interface/labels.pl 3.40 +docs/pdf/* 3.41 +docs/ps/* 3.42 +docs/user/WARNINGS 3.43 +docs/user/images.pl 3.44 +docs/user/images.tex 3.45 +docs/user/img1.png 3.46 +docs/user/img2.png 3.47 +docs/user/img3.png 3.48 +docs/user/index.html 3.49 +docs/user/internals.pl 3.50 +docs/user/labels.pl 3.51 +docs/user/user.css 3.52 +docs/user/user.html 3.53 extras/mini-os/h/hypervisor-ifs 3.54 -install 3.55 install/* 3.56 linux-*-xen0/* 3.57 linux-*-xenU/* 3.58 -linux-2.4.26-xen0 3.59 -linux-2.4.26-xenU 3.60 -linux-2.4.26.tar.gz 3.61 -linux-2.6.7-xenU 3.62 -linux-2.6.7.tar.bz2 3.63 +linux-*.patch 3.64 linux-xen-sparse 3.65 -patches/* 3.66 +mkddbxen 3.67 +netbsd-*-tools/* 3.68 +netbsd-*-xen0/* 3.69 +netbsd-*-xenU/* 3.70 +netbsd-*.patch 3.71 +patches/ebtables-brnf-5_vs_2.4.25.diff 3.72 +patches/ebtables.diff 3.73 +patches/tmp/* 3.74 +pristine-* 3.75 tools/*/build/lib*/*.py 3.76 tools/balloon/balloon 3.77 +tools/check/.* 3.78 +tools/cmdline/xen/* 3.79 +tools/ioemu/iodev/device-model 3.80 +tools/libxc/xen/* 3.81 tools/misc/miniterm/miniterm 3.82 tools/misc/xen_cpuperf 3.83 +tools/misc/xenperf 3.84 +tools/vnet/gc 3.85 +tools/vnet/gc*/* 3.86 +tools/vnet/vnet-module/*.ko 3.87 +tools/vnet/vnet-module/.*.cmd 3.88 +tools/vnet/vnet-module/.tmp_versions/* 3.89 +tools/vnet/vnet-module/vnet_module.mod.* 3.90 +tools/vnetd/vnetd 3.91 tools/web-shutdown.tap 3.92 +tools/x2d2/minixend 3.93 +tools/xcs/xcs 3.94 +tools/xcs/xcsdump 3.95 tools/xentrace/xentrace 3.96 tools/xfrd/xfrd 3.97 +xen/BLOG 3.98 +xen/arch/x86/asm-offsets.s 3.99 xen/arch/x86/boot/mkelf32 3.100 +xen/ddb/* 3.101 xen/drivers/pci/classlist.h 3.102 xen/drivers/pci/devlist.h 3.103 xen/drivers/pci/gen-devlist 3.104 xen/figlet/figlet 3.105 xen/include/asm 3.106 +xen/include/asm-*/asm-offsets.h 3.107 xen/include/hypervisor-ifs/arch 3.108 +xen/include/xen/*.new 3.109 +xen/include/xen/banner.h 3.110 xen/include/xen/compile.h 3.111 xen/tools/elf-reloc 3.112 xen/tools/figlet/figlet 3.113 xen/xen 3.114 xen/xen-syms 3.115 xen/xen.* 3.116 -xen/common/sched_atropos.c.smh
4.1 --- a/BitKeeper/etc/logging_ok Fri Aug 06 12:20:20 2004 +0000 4.2 +++ b/BitKeeper/etc/logging_ok Thu Feb 10 13:17:10 2005 +0000 4.3 @@ -9,36 +9,59 @@ bd240@labyrinth.cl.cam.ac.uk 4.4 br260@br260.wolfson.cam.ac.uk 4.5 br260@labyrinth.cl.cam.ac.uk 4.6 br260@laudney.cl.cam.ac.uk 4.7 +bren@anvil.research 4.8 +cl349@arcadians.cl.cam.ac.uk 4.9 cl349@freefall.cl.cam.ac.uk 4.10 +cl349@labyrinth.cl.cam.ac.uk 4.11 +cwc22@centipede.cl.cam.ac.uk 4.12 djm@kirby.fc.hp.com 4.13 gm281@boulderdash.cl.cam.ac.uk 4.14 +gm281@tetrapod.cl.cam.ac.uk 4.15 +harry@dory.(none) 4.16 iap10@freefall.cl.cam.ac.uk 4.17 iap10@labyrinth.cl.cam.ac.uk 4.18 iap10@nidd.cl.cam.ac.uk 4.19 +iap10@pb001.cl.cam.ac.uk 4.20 +iap10@pb007.cl.cam.ac.uk 4.21 iap10@striker.cl.cam.ac.uk 4.22 iap10@tetris.cl.cam.ac.uk 4.23 jws22@gauntlet.cl.cam.ac.uk 4.24 jws@cairnwell.research 4.25 +kaf24@camelot.eng.3leafnetworks.com 4.26 +kaf24@firebug.cl.cam.ac.uk 4.27 +kaf24@freefall.cl.cam.ac.uk 4.28 kaf24@labyrinth.cl.cam.ac.uk 4.29 +kaf24@pb001.cl.cam.ac.uk 4.30 +kaf24@penguin.local 4.31 +kaf24@planb.cl.cam.ac.uk 4.32 kaf24@plym.cl.cam.ac.uk 4.33 kaf24@scramble.cl.cam.ac.uk 4.34 kaf24@striker.cl.cam.ac.uk 4.35 +kaf24@viper.(none) 4.36 laudney@eclipse.(none) 4.37 lynx@idefix.cl.cam.ac.uk 4.38 +mafetter@fleming.research 4.39 +mark@maw48.kings.cam.ac.uk 4.40 maw48@labyrinth.cl.cam.ac.uk 4.41 mjw@wray-m-3.hpl.hp.com 4.42 +mwilli2@anvil.research 4.43 +mwilli2@equilibrium.research 4.44 mwilli2@equilibrium.research.intel-research.net 4.45 +mwilli2@pug.(none) 4.46 rac61@labyrinth.cl.cam.ac.uk 4.47 rgr22@boulderdash.cl.cam.ac.uk 4.48 rn@wyvis.camb.intel-research.net 4.49 rn@wyvis.research.intel-research.net 4.50 rneugeba@wyvis.research 4.51 rneugeba@wyvis.research.intel-research.net 4.52 +sd386@font.cl.cam.ac.uk 4.53 +shand@spidean.research.intel-research.net 4.54 smh22@boulderdash.cl.cam.ac.uk 4.55 smh22@labyrinth.cl.cam.ac.uk 4.56 smh22@tempest.cl.cam.ac.uk 4.57 smh22@uridium.cl.cam.ac.uk 4.58 sos22@donkeykong.cl.cam.ac.uk 4.59 +sos22@douglas.cl.cam.ac.uk 4.60 sos22@labyrinth.cl.cam.ac.uk 4.61 tlh20@elite.cl.cam.ac.uk 4.62 tlh20@labyrinth.cl.cam.ac.uk
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/COPYING Thu Feb 10 13:17:10 2005 +0000 5.3 @@ -0,0 +1,369 @@ 5.4 + 5.5 +GNU General Public License 5.6 +-------------------------- 5.7 + 5.8 +Most files in this repository are licensed under the terms of the GNU 5.9 +General Public License (GPL), a copy of which is attached at the end 5.10 +of this notice. Note that the only valid version of the GPL as far as 5.11 +the files in this repository are concerned is _this_ particular 5.12 +version of the license (i.e., *only* v2, not v2.2 or v3.x or 5.13 +whatever), unless explicitly otherwise stated. 5.14 + 5.15 +Licensing Exceptions (the relaxed BSD-style license) 5.16 +---------------------------------------------------- 5.17 + 5.18 +For the convenience of users and those who are porting OSes to run as 5.19 +Xen guests, certain files in this repository are not subject to the 5.20 +GPL when distributed separately or included in software packages 5.21 +outside this repository. Instead we specify a much more relaxed 5.22 +BSD-style license. Affected files include the Xen interface headers 5.23 +(xen/include/public/COPYING), and various drivers, support functions 5.24 +and header files within the Linux sparse source trees. In all such 5.25 +cases, license terms are stated at the top of the file or in a COPYING 5.26 +file in the same directory. Note that _any_ file that is modified and 5.27 +then distributed within a Linux kernel is still subject to the GNU GPL. 5.28 + 5.29 + -- Keir Fraser (on behalf of the Xen team) 5.30 + 5.31 +===================================================================== 5.32 + 5.33 + GNU GENERAL PUBLIC LICENSE 5.34 + Version 2, June 1991 5.35 + 5.36 + Copyright (C) 1989, 1991 Free Software Foundation, Inc. 5.37 + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 5.38 + Everyone is permitted to copy and distribute verbatim copies 5.39 + of this license document, but changing it is not allowed. 5.40 + 5.41 + Preamble 5.42 + 5.43 + The licenses for most software are designed to take away your 5.44 +freedom to share and change it. By contrast, the GNU General Public 5.45 +License is intended to guarantee your freedom to share and change free 5.46 +software--to make sure the software is free for all its users. This 5.47 +General Public License applies to most of the Free Software 5.48 +Foundation's software and to any other program whose authors commit to 5.49 +using it. (Some other Free Software Foundation software is covered by 5.50 +the GNU Library General Public License instead.) You can apply it to 5.51 +your programs, too. 5.52 + 5.53 + When we speak of free software, we are referring to freedom, not 5.54 +price. Our General Public Licenses are designed to make sure that you 5.55 +have the freedom to distribute copies of free software (and charge for 5.56 +this service if you wish), that you receive source code or can get it 5.57 +if you want it, that you can change the software or use pieces of it 5.58 +in new free programs; and that you know you can do these things. 5.59 + 5.60 + To protect your rights, we need to make restrictions that forbid 5.61 +anyone to deny you these rights or to ask you to surrender the rights. 5.62 +These restrictions translate to certain responsibilities for you if you 5.63 +distribute copies of the software, or if you modify it. 5.64 + 5.65 + For example, if you distribute copies of such a program, whether 5.66 +gratis or for a fee, you must give the recipients all the rights that 5.67 +you have. You must make sure that they, too, receive or can get the 5.68 +source code. And you must show them these terms so they know their 5.69 +rights. 5.70 + 5.71 + We protect your rights with two steps: (1) copyright the software, and 5.72 +(2) offer you this license which gives you legal permission to copy, 5.73 +distribute and/or modify the software. 5.74 + 5.75 + Also, for each author's protection and ours, we want to make certain 5.76 +that everyone understands that there is no warranty for this free 5.77 +software. If the software is modified by someone else and passed on, we 5.78 +want its recipients to know that what they have is not the original, so 5.79 +that any problems introduced by others will not reflect on the original 5.80 +authors' reputations. 5.81 + 5.82 + Finally, any free program is threatened constantly by software 5.83 +patents. We wish to avoid the danger that redistributors of a free 5.84 +program will individually obtain patent licenses, in effect making the 5.85 +program proprietary. To prevent this, we have made it clear that any 5.86 +patent must be licensed for everyone's free use or not licensed at all. 5.87 + 5.88 + The precise terms and conditions for copying, distribution and 5.89 +modification follow. 5.90 + 5.91 + GNU GENERAL PUBLIC LICENSE 5.92 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 5.93 + 5.94 + 0. This License applies to any program or other work which contains 5.95 +a notice placed by the copyright holder saying it may be distributed 5.96 +under the terms of this General Public License. The "Program", below, 5.97 +refers to any such program or work, and a "work based on the Program" 5.98 +means either the Program or any derivative work under copyright law: 5.99 +that is to say, a work containing the Program or a portion of it, 5.100 +either verbatim or with modifications and/or translated into another 5.101 +language. (Hereinafter, translation is included without limitation in 5.102 +the term "modification".) Each licensee is addressed as "you". 5.103 + 5.104 +Activities other than copying, distribution and modification are not 5.105 +covered by this License; they are outside its scope. The act of 5.106 +running the Program is not restricted, and the output from the Program 5.107 +is covered only if its contents constitute a work based on the 5.108 +Program (independent of having been made by running the Program). 5.109 +Whether that is true depends on what the Program does. 5.110 + 5.111 + 1. You may copy and distribute verbatim copies of the Program's 5.112 +source code as you receive it, in any medium, provided that you 5.113 +conspicuously and appropriately publish on each copy an appropriate 5.114 +copyright notice and disclaimer of warranty; keep intact all the 5.115 +notices that refer to this License and to the absence of any warranty; 5.116 +and give any other recipients of the Program a copy of this License 5.117 +along with the Program. 5.118 + 5.119 +You may charge a fee for the physical act of transferring a copy, and 5.120 +you may at your option offer warranty protection in exchange for a fee. 5.121 + 5.122 + 2. You may modify your copy or copies of the Program or any portion 5.123 +of it, thus forming a work based on the Program, and copy and 5.124 +distribute such modifications or work under the terms of Section 1 5.125 +above, provided that you also meet all of these conditions: 5.126 + 5.127 + a) You must cause the modified files to carry prominent notices 5.128 + stating that you changed the files and the date of any change. 5.129 + 5.130 + b) You must cause any work that you distribute or publish, that in 5.131 + whole or in part contains or is derived from the Program or any 5.132 + part thereof, to be licensed as a whole at no charge to all third 5.133 + parties under the terms of this License. 5.134 + 5.135 + c) If the modified program normally reads commands interactively 5.136 + when run, you must cause it, when started running for such 5.137 + interactive use in the most ordinary way, to print or display an 5.138 + announcement including an appropriate copyright notice and a 5.139 + notice that there is no warranty (or else, saying that you provide 5.140 + a warranty) and that users may redistribute the program under 5.141 + these conditions, and telling the user how to view a copy of this 5.142 + License. (Exception: if the Program itself is interactive but 5.143 + does not normally print such an announcement, your work based on 5.144 + the Program is not required to print an announcement.) 5.145 + 5.146 +These requirements apply to the modified work as a whole. If 5.147 +identifiable sections of that work are not derived from the Program, 5.148 +and can be reasonably considered independent and separate works in 5.149 +themselves, then this License, and its terms, do not apply to those 5.150 +sections when you distribute them as separate works. But when you 5.151 +distribute the same sections as part of a whole which is a work based 5.152 +on the Program, the distribution of the whole must be on the terms of 5.153 +this License, whose permissions for other licensees extend to the 5.154 +entire whole, and thus to each and every part regardless of who wrote it. 5.155 + 5.156 +Thus, it is not the intent of this section to claim rights or contest 5.157 +your rights to work written entirely by you; rather, the intent is to 5.158 +exercise the right to control the distribution of derivative or 5.159 +collective works based on the Program. 5.160 + 5.161 +In addition, mere aggregation of another work not based on the Program 5.162 +with the Program (or with a work based on the Program) on a volume of 5.163 +a storage or distribution medium does not bring the other work under 5.164 +the scope of this License. 5.165 + 5.166 + 3. You may copy and distribute the Program (or a work based on it, 5.167 +under Section 2) in object code or executable form under the terms of 5.168 +Sections 1 and 2 above provided that you also do one of the following: 5.169 + 5.170 + a) Accompany it with the complete corresponding machine-readable 5.171 + source code, which must be distributed under the terms of Sections 5.172 + 1 and 2 above on a medium customarily used for software interchange; or, 5.173 + 5.174 + b) Accompany it with a written offer, valid for at least three 5.175 + years, to give any third party, for a charge no more than your 5.176 + cost of physically performing source distribution, a complete 5.177 + machine-readable copy of the corresponding source code, to be 5.178 + distributed under the terms of Sections 1 and 2 above on a medium 5.179 + customarily used for software interchange; or, 5.180 + 5.181 + c) Accompany it with the information you received as to the offer 5.182 + to distribute corresponding source code. (This alternative is 5.183 + allowed only for noncommercial distribution and only if you 5.184 + received the program in object code or executable form with such 5.185 + an offer, in accord with Subsection b above.) 5.186 + 5.187 +The source code for a work means the preferred form of the work for 5.188 +making modifications to it. For an executable work, complete source 5.189 +code means all the source code for all modules it contains, plus any 5.190 +associated interface definition files, plus the scripts used to 5.191 +control compilation and installation of the executable. However, as a 5.192 +special exception, the source code distributed need not include 5.193 +anything that is normally distributed (in either source or binary 5.194 +form) with the major components (compiler, kernel, and so on) of the 5.195 +operating system on which the executable runs, unless that component 5.196 +itself accompanies the executable. 5.197 + 5.198 +If distribution of executable or object code is made by offering 5.199 +access to copy from a designated place, then offering equivalent 5.200 +access to copy the source code from the same place counts as 5.201 +distribution of the source code, even though third parties are not 5.202 +compelled to copy the source along with the object code. 5.203 + 5.204 + 4. You may not copy, modify, sublicense, or distribute the Program 5.205 +except as expressly provided under this License. Any attempt 5.206 +otherwise to copy, modify, sublicense or distribute the Program is 5.207 +void, and will automatically terminate your rights under this License. 5.208 +However, parties who have received copies, or rights, from you under 5.209 +this License will not have their licenses terminated so long as such 5.210 +parties remain in full compliance. 5.211 + 5.212 + 5. You are not required to accept this License, since you have not 5.213 +signed it. However, nothing else grants you permission to modify or 5.214 +distribute the Program or its derivative works. These actions are 5.215 +prohibited by law if you do not accept this License. Therefore, by 5.216 +modifying or distributing the Program (or any work based on the 5.217 +Program), you indicate your acceptance of this License to do so, and 5.218 +all its terms and conditions for copying, distributing or modifying 5.219 +the Program or works based on it. 5.220 + 5.221 + 6. Each time you redistribute the Program (or any work based on the 5.222 +Program), the recipient automatically receives a license from the 5.223 +original licensor to copy, distribute or modify the Program subject to 5.224 +these terms and conditions. You may not impose any further 5.225 +restrictions on the recipients' exercise of the rights granted herein. 5.226 +You are not responsible for enforcing compliance by third parties to 5.227 +this License. 5.228 + 5.229 + 7. If, as a consequence of a court judgment or allegation of patent 5.230 +infringement or for any other reason (not limited to patent issues), 5.231 +conditions are imposed on you (whether by court order, agreement or 5.232 +otherwise) that contradict the conditions of this License, they do not 5.233 +excuse you from the conditions of this License. If you cannot 5.234 +distribute so as to satisfy simultaneously your obligations under this 5.235 +License and any other pertinent obligations, then as a consequence you 5.236 +may not distribute the Program at all. For example, if a patent 5.237 +license would not permit royalty-free redistribution of the Program by 5.238 +all those who receive copies directly or indirectly through you, then 5.239 +the only way you could satisfy both it and this License would be to 5.240 +refrain entirely from distribution of the Program. 5.241 + 5.242 +If any portion of this section is held invalid or unenforceable under 5.243 +any particular circumstance, the balance of the section is intended to 5.244 +apply and the section as a whole is intended to apply in other 5.245 +circumstances. 5.246 + 5.247 +It is not the purpose of this section to induce you to infringe any 5.248 +patents or other property right claims or to contest validity of any 5.249 +such claims; this section has the sole purpose of protecting the 5.250 +integrity of the free software distribution system, which is 5.251 +implemented by public license practices. Many people have made 5.252 +generous contributions to the wide range of software distributed 5.253 +through that system in reliance on consistent application of that 5.254 +system; it is up to the author/donor to decide if he or she is willing 5.255 +to distribute software through any other system and a licensee cannot 5.256 +impose that choice. 5.257 + 5.258 +This section is intended to make thoroughly clear what is believed to 5.259 +be a consequence of the rest of this License. 5.260 + 5.261 + 8. If the distribution and/or use of the Program is restricted in 5.262 +certain countries either by patents or by copyrighted interfaces, the 5.263 +original copyright holder who places the Program under this License 5.264 +may add an explicit geographical distribution limitation excluding 5.265 +those countries, so that distribution is permitted only in or among 5.266 +countries not thus excluded. In such case, this License incorporates 5.267 +the limitation as if written in the body of this License. 5.268 + 5.269 + 9. The Free Software Foundation may publish revised and/or new versions 5.270 +of the General Public License from time to time. Such new versions will 5.271 +be similar in spirit to the present version, but may differ in detail to 5.272 +address new problems or concerns. 5.273 + 5.274 +Each version is given a distinguishing version number. If the Program 5.275 +specifies a version number of this License which applies to it and "any 5.276 +later version", you have the option of following the terms and conditions 5.277 +either of that version or of any later version published by the Free 5.278 +Software Foundation. If the Program does not specify a version number of 5.279 +this License, you may choose any version ever published by the Free Software 5.280 +Foundation. 5.281 + 5.282 + 10. If you wish to incorporate parts of the Program into other free 5.283 +programs whose distribution conditions are different, write to the author 5.284 +to ask for permission. For software which is copyrighted by the Free 5.285 +Software Foundation, write to the Free Software Foundation; we sometimes 5.286 +make exceptions for this. Our decision will be guided by the two goals 5.287 +of preserving the free status of all derivatives of our free software and 5.288 +of promoting the sharing and reuse of software generally. 5.289 + 5.290 + NO WARRANTY 5.291 + 5.292 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 5.293 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 5.294 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 5.295 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 5.296 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 5.297 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 5.298 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 5.299 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 5.300 +REPAIR OR CORRECTION. 5.301 + 5.302 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 5.303 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 5.304 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 5.305 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 5.306 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 5.307 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 5.308 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 5.309 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 5.310 +POSSIBILITY OF SUCH DAMAGES. 5.311 + 5.312 + END OF TERMS AND CONDITIONS 5.313 + 5.314 + How to Apply These Terms to Your New Programs 5.315 + 5.316 + If you develop a new program, and you want it to be of the greatest 5.317 +possible use to the public, the best way to achieve this is to make it 5.318 +free software which everyone can redistribute and change under these terms. 5.319 + 5.320 + To do so, attach the following notices to the program. It is safest 5.321 +to attach them to the start of each source file to most effectively 5.322 +convey the exclusion of warranty; and each file should have at least 5.323 +the "copyright" line and a pointer to where the full notice is found. 5.324 + 5.325 + <one line to give the program's name and a brief idea of what it does.> 5.326 + Copyright (C) <year> <name of author> 5.327 + 5.328 + This program is free software; you can redistribute it and/or modify 5.329 + it under the terms of the GNU General Public License as published by 5.330 + the Free Software Foundation; either version 2 of the License, or 5.331 + (at your option) any later version. 5.332 + 5.333 + This program is distributed in the hope that it will be useful, 5.334 + but WITHOUT ANY WARRANTY; without even the implied warranty of 5.335 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 5.336 + GNU General Public License for more details. 5.337 + 5.338 + You should have received a copy of the GNU General Public License 5.339 + along with this program; if not, write to the Free Software 5.340 + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 5.341 + 5.342 + 5.343 +Also add information on how to contact you by electronic and paper mail. 5.344 + 5.345 +If the program is interactive, make it output a short notice like this 5.346 +when it starts in an interactive mode: 5.347 + 5.348 + Gnomovision version 69, Copyright (C) year name of author 5.349 + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 5.350 + This is free software, and you are welcome to redistribute it 5.351 + under certain conditions; type `show c' for details. 5.352 + 5.353 +The hypothetical commands `show w' and `show c' should show the appropriate 5.354 +parts of the General Public License. Of course, the commands you use may 5.355 +be called something other than `show w' and `show c'; they could even be 5.356 +mouse-clicks or menu items--whatever suits your program. 5.357 + 5.358 +You should also get your employer (if you work as a programmer) or your 5.359 +school, if any, to sign a "copyright disclaimer" for the program, if 5.360 +necessary. Here is a sample; alter the names: 5.361 + 5.362 + Yoyodyne, Inc., hereby disclaims all copyright interest in the program 5.363 + `Gnomovision' (which makes passes at compilers) written by James Hacker. 5.364 + 5.365 + <signature of Ty Coon>, 1 April 1989 5.366 + Ty Coon, President of Vice 5.367 + 5.368 +This General Public License does not permit incorporating your program into 5.369 +proprietary programs. If your program is a subroutine library, you may 5.370 +consider it more useful to permit linking proprietary applications with the 5.371 +library. If this is what you want to do, use the GNU Library General 5.372 +Public License instead of this License.
6.1 --- a/Makefile Fri Aug 06 12:20:20 2004 +0000 6.2 +++ b/Makefile Thu Feb 10 13:17:10 2005 +0000 6.3 @@ -2,164 +2,180 @@ 6.4 # Grand Unified Makefile for Xen. 6.5 # 6.6 6.7 -INSTALL_DIR ?= $(shell pwd)/install 6.8 - 6.9 -SOURCEFORGE_MIRROR := http://heanet.dl.sourceforge.net/sourceforge 6.10 -#http://voxel.dl.sourceforge.net/sourceforge/ 6.11 -#http://easynews.dl.sourceforge.net/sourceforge 6.12 - 6.13 -.PHONY: docs delete-symlinks clean 6.14 +# Default is to install to local 'dist' directory. 6.15 +DISTDIR ?= $(CURDIR)/dist 6.16 +DESTDIR ?= $(DISTDIR)/install 6.17 6.18 -# a not partcularly useful but safe default target 6.19 -all: make-symlinks 6.20 - $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C xen install 6.21 - $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C tools install 6.22 - 6.23 -# install everything into the standard system directories 6.24 -install: dist 6.25 - $(MAKE) -C xen install 6.26 - $(MAKE) -C tools install 6.27 - $(shell cp -a install/boot/*$(LINUX_VER)* /boot/) 6.28 - $(shell cp -a install/lib/modules/* /lib/modules/) 6.29 +INSTALL := install 6.30 +INSTALL_DIR := $(INSTALL) -d -m0755 6.31 +INSTALL_DATA := $(INSTALL) -m0644 6.32 +INSTALL_PROG := $(INSTALL) -m0755 6.33 6.34 -# install xen and tools into the install directory 6.35 -dist: all 6.36 - $(MAKE) linux-xenU 6.37 - $(MAKE) linux-xen0 6.38 +KERNELS ?= linux-2.6-xen0 linux-2.6-xenU 6.39 +# linux-2.4-xen0 linux-2.4-xenU netbsd-2.0-xenU 6.40 +# You may use wildcards in the above e.g. KERNELS=*2.4* 6.41 6.42 -LINUX_RELEASE ?= 2.4 6.43 -LINUX_VER ?= $(shell ( /bin/ls -ld linux-$(LINUX_RELEASE).*-xen-sparse ) 2>/dev/null | \ 6.44 - sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' ) 6.45 -LINUX26_VER ?= $(shell ( /bin/ls -ld linux-2.6.*-xen-sparse ) 2>/dev/null | \ 6.46 - sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' ) 6.47 -LINUX_CONFIG_DIR ?= $(INSTALL_DIR)/boot 6.48 -LINUX_SRC_PATH ?= .:.. 6.49 -LINUX_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\ 6.50 - $(wildcard $(dir)/linux-$(LINUX_VER).tar.*z*))) 6.51 +ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*)) 6.52 +ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse)) 6.53 +XKERNELS := $(foreach kernel, $(KERNELS), $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.$(kernel))) ) 6.54 6.55 -# search for a pristine kernel tar ball, or try downloading one 6.56 -pristine-linux-src: 6.57 -ifeq ($(LINUX_SRC),) 6.58 - @echo "Cannot find linux-$(LINUX_VER).tar.gz in path $(LINUX_SRC_PATH)" 6.59 - @wget http://www.kernel.org/pub/linux/kernel/v$(LINUX_RELEASE)/linux-$(LINUX_VER).tar.bz2 -O./linux-$(LINUX_VER).tar.bz2 6.60 -LINUX_SRC := ./linux-$(LINUX_VER).tar.bz2 6.61 +export DESTDIR 6.62 + 6.63 +# Export target architecture overrides to Xen and Linux sub-trees. 6.64 +ifneq ($(TARGET_ARCH),) 6.65 +SUBARCH := $(subst x86_32,i386,$(TARGET_ARCH)) 6.66 +export TARGET_ARCH SUBARCH 6.67 endif 6.68 6.69 -patches/ebtables-brnf-5_vs_2.4.25.diff: 6.70 - mkdir -p patches 6.71 - wget $(SOURCEFORGE_MIRROR)/ebtables/ebtables-brnf-5_vs_2.4.25.diff.gz \ 6.72 - -O- | gunzip -c > $@ 6.73 +include buildconfigs/Rules.mk 6.74 + 6.75 +.PHONY: all dist install xen tools kernels docs world clean mkpatches mrproper 6.76 +.PHONY: kbuild kdelete kclean 6.77 + 6.78 +all: dist 6.79 + 6.80 +# build and install everything into the standard system directories 6.81 +install: install-xen install-tools install-kernels install-docs 6.82 6.83 -LINUX_TREES := linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU 6.84 +# build and install everything into local dist directory 6.85 +dist: xen tools kernels docs 6.86 + $(INSTALL_DIR) $(DISTDIR)/check 6.87 + $(INSTALL_DATA) ./COPYING $(DISTDIR) 6.88 + $(INSTALL_DATA) ./README $(DISTDIR) 6.89 + $(INSTALL_PROG) ./install.sh $(DISTDIR) 6.90 + $(INSTALL_PROG) tools/check/chk tools/check/check_* $(DISTDIR)/check 6.91 + 6.92 +xen: 6.93 + $(MAKE) -C xen install 6.94 6.95 -# make a linux-xen build tree from a pristine kernel plus sparse tree 6.96 -ifeq ($(LINUX_RELEASE),2.4) 6.97 -mk-linux-trees: patches/ebtables-brnf-5_vs_2.4.25.diff pristine-linux-src 6.98 - $(RM) -rf $(LINUX_TREES) 6.99 - echo $(LINUX_SRC) | grep -q bz2 && \ 6.100 - tar -jxf $(LINUX_SRC) || tar -zxf $(LINUX_SRC) 6.101 - mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen0 6.102 - ( cd linux-$(LINUX_VER)-xen-sparse ; \ 6.103 - ./mkbuildtree ../linux-$(LINUX_VER)-xen0 ) 6.104 - cp -al linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU 6.105 - ( cd linux-$(LINUX_VER)-xen0 ; \ 6.106 - patch -p1 -F3 < ../patches/ebtables-brnf-5_vs_2.4.25.diff ) 6.107 -else 6.108 -mk-linux-trees: pristine-linux-src 6.109 - $(RM) -rf $(LINUX_TREES) 6.110 - echo $(LINUX_SRC) | grep -q bz2 && \ 6.111 - tar -jxf $(LINUX_SRC) || tar -zxf $(LINUX_SRC) 6.112 - mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen0 6.113 - ( cd linux-$(LINUX_VER)-xen-sparse ; \ 6.114 - ./mkbuildtree ../linux-$(LINUX_VER)-xen0 ) 6.115 - cp -al linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU 6.116 -endif 6.117 +tools: 6.118 + $(MAKE) -C tools install 6.119 + 6.120 +kernels: 6.121 + for i in $(XKERNELS) ; do $(MAKE) $$i-build || exit 1; done 6.122 + 6.123 +docs: 6.124 + sh ./docs/check_pkgs && $(MAKE) -C docs install || true 6.125 + 6.126 +# Build all the various kernels and modules 6.127 +kbuild: kernels 6.128 6.129 -# configure the specified linux tree 6.130 -CDIR = $(subst config-,linux-$(LINUX_VER)-,$@) 6.131 -ifeq ($(LINUX_RELEASE),2.4) 6.132 -config-xen%: 6.133 - $(MAKE) -C $(CDIR) ARCH=xen mrproper 6.134 - cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) \ 6.135 - $(CDIR)/.config || \ 6.136 - $(MAKE) -C $(CDIR) ARCH=xen $(subst config-,,$@)_config 6.137 - $(MAKE) -C $(CDIR) ARCH=xen oldconfig 6.138 - $(MAKE) -C $(CDIR) ARCH=xen dep 6.139 -else 6.140 -config-xen%: 6.141 - $(MAKE) -C $(CDIR) ARCH=xen mrproper 6.142 - @[ -e $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) ] \ 6.143 - && cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) \ 6.144 - $(CDIR)/.config || \ 6.145 - $(MAKE) -C $(CDIR) ARCH=xen $(subst config-,,$@)_defconfig 6.146 -endif 6.147 +# Delete the kernel build trees entirely 6.148 +kdelete: 6.149 + for i in $(XKERNELS) ; do $(MAKE) $$i-delete ; done 6.150 6.151 -# build the specified linux tree 6.152 -BDIR = $(subst linux-,linux-$(LINUX_VER)-,$@) 6.153 -linux-xen%: 6.154 - $(MAKE) -C $(BDIR) ARCH=xen modules 6.155 - $(MAKE) -C $(BDIR) ARCH=xen INSTALL_MOD_PATH=$(INSTALL_DIR) \ 6.156 - modules_install 6.157 - $(MAKE) -C $(BDIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install 6.158 +# Clean the kernel build trees 6.159 +kclean: 6.160 + for i in $(XKERNELS) ; do $(MAKE) $$i-clean ; done 6.161 + 6.162 +# Make patches from kernel sparse trees 6.163 +mkpatches: 6.164 + for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-xen.patch || exit 1; done 6.165 + 6.166 6.167 # build xen, the tools, and a domain 0 plus unprivileged linux-xen images, 6.168 # and place them in the install directory. 'make install' should then 6.169 # copy them to the normal system directories 6.170 -world: 6.171 +world: 6.172 $(MAKE) clean 6.173 - $(MAKE) all 6.174 - $(MAKE) mk-linux-trees 6.175 - $(MAKE) config-xenU 6.176 - $(MAKE) linux-xenU 6.177 - $(MAKE) config-xen0 6.178 - $(MAKE) linux-xen0 6.179 - $(MAKE) docs 6.180 + $(MAKE) kdelete 6.181 + $(MAKE) dist 6.182 6.183 -linux26: 6.184 - $(MAKE) LINUX_RELEASE=2.6 mk-linux-trees 6.185 - $(MAKE) LINUX_RELEASE=2.6 config-xenU 6.186 - $(MAKE) LINUX_RELEASE=2.6 linux-xenU 6.187 - $(MAKE) LINUX_RELEASE=2.6 config-xen0 6.188 - $(MAKE) LINUX_RELEASE=2.6 linux-xen0 6.189 - 6.190 - 6.191 -clean: delete-symlinks 6.192 +# clean doesn't do a kclean 6.193 +clean: 6.194 $(MAKE) -C xen clean 6.195 $(MAKE) -C tools clean 6.196 $(MAKE) -C docs clean 6.197 6.198 -# clean, but blow away linux build tree plus src tar ball 6.199 +# clean, but blow away kernel build tree plus tar balls 6.200 mrproper: clean 6.201 - rm -rf install/* patches $(LINUX_TREES) linux-$(LINUX_VER).tar.* 6.202 + rm -rf dist patches/tmp 6.203 + for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done 6.204 + for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-mrproper ; done 6.205 6.206 -make-symlinks: delete-symlinks 6.207 - ln -sf linux-$(LINUX26_VER)-xen-sparse linux-xen-sparse 6.208 - 6.209 -delete-symlinks: 6.210 - $(RM) linux-xen-sparse 6.211 - 6.212 -# handy target to install twisted (use rpm or apt-get in preference) 6.213 install-twisted: 6.214 wget http://www.twistedmatrix.com/products/get-current.epy 6.215 tar -zxf Twisted-*.tar.gz 6.216 - ( cd Twisted-* ; python setup.py install ) 6.217 + cd Twisted-* && python setup.py install 6.218 6.219 install-logging: LOGGING=logging-0.4.9.2 6.220 install-logging: 6.221 [ -f $(LOGGING).tar.gz ] || wget http://www.red-dove.com/$(LOGGING).tar.gz 6.222 tar -zxf $(LOGGING).tar.gz 6.223 - ( cd $(LOGGING) && python setup.py install ) 6.224 + cd $(LOGGING) && python setup.py install 6.225 6.226 # handy target to upgrade iptables (use rpm or apt-get in preference) 6.227 install-iptables: 6.228 wget http://www.netfilter.org/files/iptables-1.2.11.tar.bz2 6.229 - tar -jxf iptables-*.tar.bz2 6.230 - ( cd iptables-* ; \ 6.231 - make PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install) 6.232 + tar -jxf iptables-1.2.11.tar.bz2 6.233 + $(MAKE) -C iptables-1.2.11 PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install 6.234 + 6.235 +install-%: DESTDIR= 6.236 +install-%: % 6.237 + @: # do nothing 6.238 6.239 +help: 6.240 + @echo 'Installation targets:' 6.241 + @echo ' install - build and install everything' 6.242 + @echo ' install-xen - build and install the Xen hypervisor' 6.243 + @echo ' install-tools - build and install the control tools' 6.244 + @echo ' install-kernels - build and install guest kernels' 6.245 + @echo ' install-docs - build and install documentation' 6.246 + @echo '' 6.247 + @echo 'Building targets:' 6.248 + @echo ' dist - build and install everything into local dist directory' 6.249 + @echo ' world - clean everything, delete guest kernel build' 6.250 + @echo ' trees then make dist' 6.251 + @echo ' xen - build and install Xen hypervisor' 6.252 + @echo ' tools - build and install tools' 6.253 + @echo ' kernels - build and install guest kernels' 6.254 + @echo ' kbuild - synonym for make kernels' 6.255 + @echo ' docs - build and install docs' 6.256 + @echo '' 6.257 + @echo 'Cleaning targets:' 6.258 + @echo ' clean - clean the Xen, tools and docs (but not' 6.259 + @echo ' guest kernel) trees' 6.260 + @echo ' mrproper - clean plus delete kernel tarballs and kernel' 6.261 + @echo ' build trees' 6.262 + @echo ' kdelete - delete guest kernel build trees' 6.263 + @echo ' kclean - clean guest kernel build trees' 6.264 + @echo '' 6.265 + @echo 'Dependency installation targets:' 6.266 + @echo ' install-twisted - install the Twisted Matrix Framework' 6.267 + @echo ' install-logging - install the Python Logging package' 6.268 + @echo ' install-iptables - install iptables tools' 6.269 + @echo '' 6.270 + @echo 'Miscellaneous targets:' 6.271 + @echo ' mkpatches - make patches against vanilla kernels from' 6.272 + @echo ' sparse trees' 6.273 + @echo ' uninstall - attempt to remove installed Xen tools (use' 6.274 + @echo ' with extreme care!)' 6.275 + 6.276 +# Use this target with extreme care! 6.277 +uninstall: DESTDIR= 6.278 +uninstall: D=$(DESTDIR) 6.279 uninstall: 6.280 - cp -a /etc/xen /etc/xen.old && rm -rf /etc/xen 6.281 - rm -rf "/usr/lib/python2.2/site-packages/xen* /usr/lib/libxc* /usr/lib/python2.2/site-packages/Xc*" 6.282 + [ ! -d $(D)/etc/xen ] || mv -f $(D)/etc/xen $(D)/etc/xen.old 6.283 + rm -rf $(D)/etc/init.d/xend* 6.284 + rm -rf $(D)/usr/lib/libxc* $(D)/usr/lib/libxutil* 6.285 + rm -rf $(D)/usr/lib/python/xen $(D)/usr/include/xen 6.286 + rm -rf $(D)/usr/include/xcs_proto.h $(D)/usr/include/xc.h 6.287 + rm -rf $(D)/usr/sbin/xcs $(D)/usr/sbin/xcsdump $(D)/usr/sbin/xen* 6.288 + rm -rf $(D)/usr/sbin/netfix 6.289 + rm -rf $(D)/usr/sbin/xfrd $(D)/usr/sbin/xm $(D)/var/lib/xen 6.290 + rm -rf $(D)/usr/share/doc/xen $(D)/usr/man/man*/xentrace* 6.291 + rm -rf $(D)/usr/bin/xen* $(D)/usr/bin/miniterm 6.292 + rm -rf $(D)/boot/*xen* 6.293 6.294 -docs: 6.295 - $(MAKE) -C docs all || true 6.296 +# Legacy targets for compatibility 6.297 +linux24: 6.298 + $(MAKE) linux-2.4-xen0-build 6.299 + $(MAKE) linux-2.4-xenU-build 6.300 + 6.301 +linux26: 6.302 + $(MAKE) linux-2.6-xen0-build 6.303 + $(MAKE) linux-2.6-xenU-build 6.304 + 6.305 +netbsd20: 6.306 + $(MAKE) netbsd-2.0-xenU-build 6.307 +
7.1 --- a/README Fri Aug 06 12:20:20 2004 +0000 7.2 +++ b/README Thu Feb 10 13:17:10 2005 +0000 7.3 @@ -1,219 +1,81 @@ 7.4 -############################# 7.5 - __ __ _ _____ 7.6 - \ \/ /___ _ __ / | |___ / 7.7 - \ // _ \ '_ \ | | |_ \ 7.8 - / \ __/ | | | | |_ ___) | 7.9 - /_/\_\___|_| |_| |_(_)____/ 7.10 - 7.11 -############################# 7.12 +############################### 7.13 +__ __ ____ ___ 7.14 +\ \/ /___ _ __ |___ \ / _ \ 7.15 + \ // _ \ '_ \ __) || | | | 7.16 + / \ __/ | | | / __/ | |_| | 7.17 +/_/\_\___|_| |_| |_____(_)___/ 7.18 + 7.19 +############################### 7.20 7.21 University of Cambridge Computer Laboratory 7.22 -15 Jun 2004 7.23 - 7.24 -http://www.cl.cam.ac.uk/netos/xen 7.25 - 7.26 -About the Xen Virtual Machine Monitor 7.27 -===================================== 7.28 +3 November 2004 7.29 7.30 -"Xen" is a Virtual Machine Monitor (VMM) originally developed by the 7.31 -Systems Research Group of the University of Cambridge Computer 7.32 -Laboratory, as part of the UK-EPSRC funded XenoServers project. 7.33 - 7.34 -The XenoServers project aims to provide a "public infrastructure for 7.35 -global distributed computing", and Xen plays a key part in that, 7.36 -allowing us to efficiently partition a single machine to enable 7.37 -multiple independent clients to run their operating systems and 7.38 -applications in an environment providing protection, resource 7.39 -isolation and accounting. The project web page contains further 7.40 -information along with pointers to papers and technical reports: 7.41 -http://www.cl.cam.ac.uk/xeno 7.42 +http://www.cl.cam.ac.uk/netos/xen/ 7.43 7.44 -Xen has since grown into a project in its own right, enabling us to 7.45 -investigate interesting research issues regarding the best techniques 7.46 -for virtualizing resources such as the CPU, memory, disk and network. 7.47 -The project has been bolstered by support from Intel Research 7.48 -Cambridge, and HP Labs, who are now working closely with us. We're 7.49 -also in receipt of support from Microsoft Research Cambridge to port 7.50 -Windows XP to run on Xen. 7.51 - 7.52 -Xen enables multiple operating system images to execute concurrently 7.53 -on the same hardware with very low performance overhead --- much lower 7.54 -than commercial offerings for the same x86 platform. 7.55 +What is Xen? 7.56 +============ 7.57 7.58 -This is achieved by requiring OSs to be specifically ported to run on 7.59 -Xen, rather than allowing unmodified OS images to be used. Crucially, 7.60 -only the OS needs to be changed -- all of the user-level application 7.61 -binaries, libraries etc can run unmodified. Hence the modified OS 7.62 -kernel can typically just be dropped into any existing OS distribution 7.63 -or installation. 7.64 - 7.65 -Xen currently runs on the x86 architecture, but could in principle be 7.66 -ported to others. In fact, it would have been rather easier to write 7.67 -Xen for pretty much any other architecture as x86 is particularly 7.68 -tricky to handle. A good description of Xen's design, implementation 7.69 -and performance is contained in our October 2003 SOSP paper, available 7.70 -at http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf 7.71 -[update: work to port Xen to x86_64 and IA64 is underway] 7.72 - 7.73 -Five different operating systems have been ported to run on Xen: 7.74 -Linux 2.4/2.6, Windows XP, NetBSD, FreeBSD and Plan 9. 7.75 +Xen is a Virtual Machine Monitor (VMM) originally developed by the 7.76 +Systems Research Group of the University of Cambridge Computer 7.77 +Laboratory, as part of the UK-EPSRC funded XenoServers project. 7.78 +Xen is freely-distributable Open Source software, released under the 7.79 +GNU GPL. 7.80 7.81 -The Linux 2.4 port (currently Linux 2.4.26) works very well -- we 7.82 -regularly use it to host complex applications such as PostgreSQL, 7.83 -Apache, BK servers etc. It runs every user-space applications we've 7.84 -tried. We refer to our version of Linux ported to run on Xen as 7.85 -"XenLinux", although really it's just standard Linux ported to a new 7.86 -virtual CPU architecture that we call xen-x86. 7.87 - 7.88 -NetBSD has been ported to Xen by Christian Limpach, and will hopefully 7.89 -soon become part of the standard release. Work on a FreeBSD port has 7.90 -been started by Kip Macy, and we hope to see this complete for the 2.0 7.91 -release. Ron Minnich has been working on Plan 9. 7.92 - 7.93 -The Windows XP port is nearly finished. It's running user space 7.94 -applications and is generally in pretty good shape thanks to some hard 7.95 -work by a team over the summer. Of course, there are issues with 7.96 -releasing this code to others. We should be able to release the 7.97 -source and binaries to anyone that has signed the Microsoft academic 7.98 -source license, which these days has very reasonable terms. We are in 7.99 -discussions with Microsoft about the possibility of being able to make 7.100 -binary releases to a larger user community. Obviously, there are 7.101 -issues with product activation in this environment which need to be 7.102 -thought through. 7.103 +The 2.0 release offers excellent performance, hardware support and 7.104 +enterprise-grade features such as live migration. Linux 2.6, 2.4 and 7.105 +NetBSD 2.0 are already available for Xen, with more operating system 7.106 +ports on the way. 7.107 7.108 -So, for the moment, you only get to run Linux 2.4/2.6 and NetBSD on 7.109 -Xen, but we hope this will change before too long. Even running 7.110 -multiple copies of the same OS can be very useful, as it provides a 7.111 -means of containing faults to one OS image, and also for providing 7.112 -performance isolation between the various OS, enabling you to either 7.113 -restrict, or reserve resources for, particular VM instances. 7.114 - 7.115 -It's also useful for development -- each version of Linux can have 7.116 -different patches applied, enabling different kernels to be tried 7.117 -out. For example, the "vservers" patch used by PlanetLab applies 7.118 -cleanly to our ported version of Linux. 7.119 +This file contains some quick-start instructions to install Xen on 7.120 +your system. For full documentation, see the Xen User Manual. If this 7.121 +is a pre-built release then you can find the manual at: 7.122 + dist/install/usr/share/doc/xen/pdf/user.pdf 7.123 +If you have a source release, then 'make -C docs' will build the 7.124 +manual at docs/pdf/user.pdf. 7.125 7.126 -We've successfully booted over 128 copies of Linux on the same machine 7.127 -(a dual CPU hyperthreaded Xeon box) but we imagine that it would be 7.128 -more normal to use some smaller number, perhaps 10-20. 7.129 +Quick-Start Guide - Pre-Built Binary Release 7.130 +============================================ 7.131 7.132 -A common question is "how many virtual machines can I run on hardware 7.133 -xyz?". The answer is very application dependent, but the rule of thumb 7.134 -is that you should expect to be able to run the same workload under 7.135 -multiple guest OSes that you could run under a single Linux instance, 7.136 -with an additional overhead of a few MB per OS instance. 7.137 - 7.138 -One key feature in this new release of Xen is `live migration'. This 7.139 -enables virtual machines instances to be dynamically moved between 7.140 -physical Xen machines, with typical downtimes of just a few tens of 7.141 -milliseconds. This is really useful for admins that want to take a 7.142 -node down for maintenance, or to load balance a large number of 7.143 -virtual machines across a cluster. 7.144 - 7.145 - 7.146 +[NB. Unless noted otherwise, all the following steps should be 7.147 +performed with root privileges.] 7.148 7.149 -Hardware support 7.150 -================ 7.151 - 7.152 -Xen is intended to be run on server-class machines, and the current 7.153 -list of supported hardware very much reflects this, avoiding the need 7.154 -for us to write drivers for "legacy" hardware. It is likely that some 7.155 -desktop chipsets will fail to work properly with the default Xen 7.156 -configuration: specifying 'noacpi' or 'ignorebiostables' when booting 7.157 -Xen may help in these cases. 7.158 - 7.159 -Xen requires a "P6" or newer processor (e.g. Pentium Pro, Celeron, 7.160 -Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron). 7.161 -Multiprocessor machines are supported, and we also have basic support 7.162 -for HyperThreading (SMT), although this remains a topic for ongoing 7.163 -research. We're also working on an AMD x86_64 port (though Xen should 7.164 -run on Opterons in 32-bit mode just fine). 7.165 - 7.166 -Xen can currently use up to 4GB of memory. It's possible for x86 7.167 -machines to address more than that (64GB), but it requires using a 7.168 -different page table format (3-level rather than 2-level) that we 7.169 -currently don't support. Adding 3-level PAE support wouldn't be 7.170 -difficult, but we'd also need to add support to all the guest 7.171 -OSs. Volunteers welcome! 7.172 +1. Install the binary distribution onto your filesystem: 7.173 + # sh ./install.sh 7.174 + Amongst other things, this will install Xen and XenLinux kernel 7.175 + files in /boot, kernel modules and Python packages in /lib, and 7.176 + various control tools in standard 'bin' directories. 7.177 7.178 -In contrast to previous Xen versions, in Xen 2.0 device drivers run 7.179 -within a privileged guest OS rather than within Xen itself. This means 7.180 -that we should be compatible with the full set of device hardware 7.181 -supported by Linux. The default XenLinux build contains support for 7.182 -relatively modern server-class network and disk hardware, but you can 7.183 -add suppport for other hardware by configuring your XenLinux kernel in 7.184 -the normal way (e.g. "make xconfig"). 7.185 - 7.186 - 7.187 -Building Xen and XenLinux 7.188 -========================= 7.189 - 7.190 -The public master BK repository for the 2.0 release lives at: 7.191 -bk://xen.bkbits.net/xeno-2.0.bk 7.192 - 7.193 -To fetch a local copy, install the BitKeeper tools, then run: 7.194 -'bk clone bk://xen.bkbits.net/xeno-2.0.bk' 7.195 - 7.196 -You can do a complete build of Xen, the control tools, and the 7.197 -XenLinux kernel images with "make world". This can take 10 minutes 7.198 -even on a fast machine. If you're on an SMP machine you may wish to 7.199 -give the '-j4' argument to make to get a parallel build. All of the 7.200 -files that are built are placed under the ./install directory. You 7.201 -can then install everything to the standard system directories 7.202 -(e.g. /boot, /usr/bin, /usr/lib/python/ etc) by typing "make install". 7.203 +2. Configure your bootloader to boot Xen and an initial Linux virtual 7.204 + machine. Note that Xen currently only works with GRUB: less common 7.205 + alternatives such as LILO are *not* supported. You can most likely 7.206 + find your GRUB menu file at /boot/grub/menu.lst: edit this file to 7.207 + include an entry like the following: 7.208 + # title Xen 2.0 / XenLinux 2.6.9 7.209 + # kernel /boot/xen.gz dom0_mem=<mem-kb> console=vga 7.210 + # module /boot/vmlinuz-2.6.9-xen0 root=<root-dev> ro console=tty0 7.211 + For <mem-kb> you should specify the amount of memory, in kilobytes, 7.212 + to allocate for use by your initial XenLinux virtual machine. Note 7.213 + that Xen itself reserves about 32MB memory for internal use, which 7.214 + is not available for allocation to virtual machines. 7.215 + For <root-dev>, specify your usual root partition (e.g., /dev/hda1). 7.216 7.217 -Take a look in install/boot/: 7.218 - install/boot/xen.gz The Xen 'kernel' (formerly image.gz) 7.219 - install/boot/vmlinuz-2.4.26-xen0 Domain 0 XenLinux kernel (xenolinux.gz) 7.220 - install/boot/vmlinuz-2.4.26-xenU Unprivileged XenLinux kernel 7.221 +3. Reboot your system and select the "Xen 2.0 / XenLinux 2.6.9" menu 7.222 + option. After booting Xen, XenLinux will start and your 7.223 + initialisation scripts should execute in the usual way. 7.224 7.225 -The difference between the two Linux kernels that are built is 7.226 -due to the configuration file used for each. The "U" suffixed 7.227 -unprivileged version doesn't contain any of the physical hardware 7.228 -device drivers, so is 30% smaller and hence may be preferred for 7.229 -your non-privileged domains. 7.230 - 7.231 -The install/boot directory will also contain the config files 7.232 -used for building the XenLinux kernels, and also versions of Xen 7.233 -and XenLinux kernels that contain debug symbols (xen-syms and 7.234 -vmlinux-syms-2.4.26-xen0) which are essential for interpreting crash 7.235 -dumps. 7.236 +Quick-Start Guide - Source Release 7.237 +================================== 7.238 7.239 -Inspect the Makefile if you want to see what goes on during a 7.240 -build. Building Xen and the tools is straightforward, but XenLinux is 7.241 -more complicated. The makefile needs a 'pristine' linux kernel tree 7.242 -which it will then add the Xen architecture files to. You can tell the 7.243 -makefile the location of the appropriate linux compressed tar file by 7.244 -setting the LINUX_SRC environment variable 7.245 -(e.g. "LINUX_SRC=/tmp/linux-2.4.26.tar.gz make world") or by placing 7.246 -the tar file somewhere in the search path of LINUX_SRC_PATH which 7.247 -defaults to ".:..". If the makefile can't find a suitable kernel tar 7.248 -file it attempts to download it from kernel.org, but this won't work 7.249 -if you're behind a firewall. 7.250 +First, there are a number of prerequisites for building a Xen source 7.251 +release. Make sure you have all the following installed, either by 7.252 +visiting the project webpage or installing a pre-built package 7.253 +provided by your Linux distributor: 7.254 + * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported) 7.255 + * GNU Make 7.256 + * GNU Binutils 7.257 + * Development install of libcurl (e.g., libcurl-dev) 7.258 + * Development install of zlib (e.g., zlib-dev) 7.259 + * Development install of Python v2.2 or later (e.g., python-dev) 7.260 7.261 -After untaring the pristine kernel tree, the makefile uses the 7.262 -'mkbuildtree' script to add the Xen patches the kernel. "make world" 7.263 -then build two different XenLinux images, one with a "-xen0" extension 7.264 -which contains hardware device drivers and is intended to be used in 7.265 -the first virtual machine ("domain 0"), and one with a "-xenU" 7.266 -extension that just contains virtual-device drivers. The latter can be 7.267 -used for all non hardware privileged domains, and is substantially 7.268 -smaller than the other kernel with its selection of hardware drivers. 7.269 - 7.270 -If you don't want to use bitkeeper to download the source, you can 7.271 -download prebuilt binaries and src tar balls from the project 7.272 -downloads page: http://www.cl.cam.ac.uk/netos/xen/downloads/ 7.273 - 7.274 -Using the domain control tools 7.275 -============================== 7.276 - 7.277 -Before starting domains you'll need to start the node management 7.278 -daemon: "xend start". 7.279 -The primary tool for starting and controlling domains is "xm". 7.280 -"xm help <cmd>" will tell you how to use it. 7.281 - 7.282 -README.CD contains some example invocations. 7.283 - 7.284 -Further documentation is in docs/ (e.g., docs/Xen-HOWTO), and also in 7.285 - 7.286 - 7.287 +[NB. Unless noted otherwise, all the following steps should be 7.288 +performed with root privileges.]
8.1 --- a/README.CD Fri Aug 06 12:20:20 2004 +0000 8.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 8.3 @@ -1,739 +0,0 @@ 8.4 -############################# 8.5 - __ __ _ _____ 8.6 - \ \/ /___ _ __ / | |___ / 8.7 - \ // _ \ '_ \ | | |_ \ 8.8 - / \ __/ | | | | |_ ___) | 8.9 - /_/\_\___|_| |_| |_(_)____/ 8.10 - 8.11 -############################# 8.12 - 8.13 - XenDemoCD 1.3 8.14 - University of Cambridge Computer Laboratory 8.15 - 24 Jan 2004 8.16 - 8.17 - http://www.cl.cam.ac.uk/netos/xen 8.18 - 8.19 -Welcome to the Xen Demo CD! 8.20 - 8.21 -Executive Summary 8.22 -================= 8.23 - 8.24 -This CD is a standalone demo of the Xen Virtual Machine Monitor (VMM) 8.25 -and Linux-2.4 OS port (Xenlinux). It runs entirely off the CD, 8.26 -without requiring hard disk installation. This is achieved using a RAM 8.27 -disk to store mutable file system data while using the CD for 8.28 -everything else. The CD can also be used for installing Xen/Xenlinux 8.29 -to disk, and includes a source code snapshot along with all of the 8.30 -tools required to build it. 8.31 - 8.32 -Booting the CD 8.33 -============== 8.34 - 8.35 -It should be possible to get Xen working with any relatively modern 8.36 -hardware supported by standard Linux. However, the version of XenLinux 8.37 -built for the DemoCD is fairly h/w specific. If you need other 8.38 -hardware, you'll have to configure and build your own xenlinux kernel. 8.39 -Xen does require an 'i686'-class CPU or newer, so won't work on 486's 8.40 -or plain Pentiums. 8.41 - 8.42 -We have compiled in drivers for the following hardware: 8.43 - 8.44 -CPU: Pentium Pro/II/III/IV/Xeon, Athlon (i.e. P6 or newer) SMP supported 8.45 -IDE: Intel PIIX chipset, others will be PIO only (slow) 8.46 -SCSI: Adaptec / Dell PERC Raid (aacraid), fusion MPT, megaraid, Adaptec aic7xxx 8.47 -Net: Recommended: Intel e1000, Broadcom BCM57xx (tg3), 3c905 (3c59x) 8.48 - Also supported: pcnet32, Intel e100, tulip 8.49 - 8.50 -Because of the demo CD's use of RAM disks, make sure you have plenty 8.51 -of RAM (256MB+). 8.52 - 8.53 -To try out the Demo, boot from CD (you may need to change your BIOS 8.54 -configuration to do this), then select one of the four boot options 8.55 -from the Grub menu: 8.56 - 8.57 - Xen / linux-2.4.26 8.58 - Xen / linux-2.4.26 using cmdline IP configuration 8.59 - Xen / linux-2.4.26 in "safe mode" 8.60 - linux-2.4.22 8.61 - 8.62 -The last option is a plain linux kernel that runs on the bare machine, 8.63 -and is included simply to help diagnose driver compatibility 8.64 -problems. The "safe mode" boot option might be useful if you're having 8.65 -problems getting Xen to work with your hardware, as it disables various 8.66 -features such as SMP, and enables some debugging. 8.67 - 8.68 -If you are going for a command line IP config, hit "e" at 8.69 -the grub menu, then edit the "ip=" parameters to reflect your setup 8.70 -e.g. "ip=<ipaddr>::<gateway>:<netmask>::eth0:off". It shouldn't be 8.71 -necessary to set either the nfs server or hostname 8.72 -parameters. Alternatively, once Xenlinux has booted you can login and 8.73 -setup networking with 'dhclient' or 'ifconfig' and 'route' in the 8.74 -normal way. 8.75 - 8.76 -To make things easier for yourself, it's worth trying to arrange for an 8.77 -IP address which is the first in a sequential range of free IP 8.78 -addresses. It's useful to give each VM instance its own public IP 8.79 -address (though it is possible to do NAT or use private addresses), 8.80 -and the configuration files on the CD allocate IP addresses 8.81 -sequentially for subsequent domains unless told otherwise. 8.82 - 8.83 -After selecting the kernel to boot, stand back and watch Xen boot, 8.84 -closely followed by "domain 0" running the Xenlinux kernel. The boot 8.85 -messages can also sent to the serial line by specifying the baud rate 8.86 -on the Xen cmdline (e.g., 'com1=9600,8n1'); this can be very useful 8.87 -for debugging should anything important scroll off the screen. Xen's 8.88 -startup messages will look quite familiar as much of the hardware 8.89 -initialisation (SMP boot, apic setup) and device drivers are derived 8.90 -from Linux. 8.91 - 8.92 -If everything is well, you should see the linux rc scripts start a 8.93 -bunch of standard services including sshd. Login on the console or 8.94 -via ssh:: 8.95 - username: user root 8.96 - password: xendemo xendemo 8.97 - 8.98 -Once logged in, it should look just like any regular linux box. All 8.99 -the usual tools and commands should work as per usual. However, 8.100 -because of the poor random access performance of CD drives, the 8.101 -machine will feel very slugish, and you may run out of memory if you 8.102 -make significant modifications to the ramfs filesystem -- for the full 8.103 -experience, install a Xen and Xenlinux image on you hard drive :-) 8.104 - 8.105 -You can configure networking, either with 'dhclient' or manually via 8.106 -'ifconfig' and 'route', remembering to edit /etc/resolv.conf if you 8.107 -want DNS to work. 8.108 - 8.109 -You can start an X server with 'startx'. It defaults to a conservative 8.110 -1024x768, but you can edit the script for higher resoloutions. The CD 8.111 -contains a load of standard software. You should be able to start 8.112 -Apache, PostgreSQL, Mozilla etc in the normal way, but because 8.113 -everything is running off CD the performance will be very sluggish and 8.114 -you may run out of memory for the 'tmpfs' file system. You may wish 8.115 -to go ahead and install Xen/Xenlinux on your hard drive, either 8.116 -dropping Xen and the Xenlinux kernel down onto a pre-existing Linux 8.117 -distribution, or using the file systems from the CD (which are based 8.118 -on RH9). See the installation instructions later in this document. 8.119 - 8.120 -If your video card requires 'agpgart' then it unfortunately won't yet 8.121 -work with Xen, and you'll only be able to configure a VGA X 8.122 -server. We're working on a fix for this for the next release. 8.123 - 8.124 -If you want to browse the Xen / Xenlinux source, it's all located 8.125 -under /usr/local/src/xeno-1.3, complete with BitKeeper 8.126 -repository. We've also included source code and configuration 8.127 -information for the various benchmarks we used in the SOSP paper. 8.128 - 8.129 - 8.130 -Starting other domains 8.131 -====================== 8.132 - 8.133 -The first thing you need to do is to start the "xend" control daemon 8.134 -with "xend start". You may wish to add an appropriate link to xend in 8.135 -you /etc/rcX.d directory e.g. "ln -sf ../init.d/xend S97xend" 8.136 - 8.137 -If you're not intending to configure the new domain with an IP address 8.138 -on your LAN, then you'll probably want to use NAT. The 8.139 -'xen_nat_enable' installs a few useful iptables rules into domain0 to 8.140 -enable NAT. [NB: We plan to support RSIP in future] 8.141 - 8.142 -Xen has a management interface that can be manipulated from domain0 to 8.143 -create new domains, control their CPU, network and memory resource 8.144 -allocations, allocate IP addresses, grant access to disk partitions, 8.145 -and suspend/resume domains to files, etc. The management interface is 8.146 -implemented as a set of library functions (implemented in C) for which 8.147 -there are Python language bindings. 8.148 - 8.149 -We have developed a simple set of example python tools for 8.150 -manipulating the interface, with the intention that more sophisticated 8.151 -high-level management tools will be developed in due course. Within 8.152 -the source repository the tools live in tools/examples/ but are 8.153 -installed in /usr/local/bin/ on the CD. 8.154 - 8.155 -Starting a new domain is achieved using xc_dom_create.py which 8.156 -allocates resources to a new domain, populates it with a kernel image 8.157 -(and optionally a ramdisk) and then starts it. 8.158 - 8.159 -It parses a configuration file written in the Python language, the 8.160 -default location of which is "/etc/xc/defaults", but this may be 8.161 -overridden with the "-f" option. For the Demo CD, the defaults file 8.162 -will cause domains to be created with ram-based root file systems, and 8.163 -mount their /usr partition from the CD, just like domain0. (If you are 8.164 -writing your own config file, the "example" script may be a better 8.165 -starting point) 8.166 - 8.167 -Variables can be initialised and passed into configuration files. Some 8.168 -of these may be compulsory, others optional. 8.169 - 8.170 -The 'defaults' file on the CD requires the 'ip' variable to be set to 8.171 -tell Xen what IP address(es) should be routed to this domain. Xen 8.172 -will route packets to the domain if they bear one of these addresses 8.173 -as a destination address, and will also ensure that packets sent from 8.174 -the domain contain one of the addresses as a source address (to 8.175 -prevent spoofing). If multiple IP addresses are to be assigned to a 8.176 -domain they can be listed in a comma separated list (with no 8.177 -whitespace). 8.178 - 8.179 -The 'mem' variable can be used to change the default memory allocation 8.180 -of 64MB. For example to start a domain with two IP addresses and 8.181 -72MB: 8.182 - 8.183 - xc_dom_create.py -Dip=128.23.45.34,169.254.1.1 -Dmem=72 8.184 - 8.185 -[multiple variables may also be set with a single '-D' flag by 8.186 -separating them with ':'. Also, it's possible to use DNS hostnames 8.187 -rather than IP addresses.] 8.188 - 8.189 -When invoked with the '-n' option xc_dom_create.py will do a dry run 8.190 -and just print out what resources and configuration the domain will 8.191 -have e.g.: 8.192 - 8.193 - [root@xendemo]# xc_dom_create.py -D ip=commando-1.xeno,169.254.2.3 -Dmem=100 8.194 - Parsing config file 'defaults' 8.195 - 8.196 - VM image : "/boot/xenlinux.gz" 8.197 - VM ramdisk : "/boot/initrd.gz" 8.198 - VM memory (MB) : "100" 8.199 - VM IP address(es) : "128.232.38.51:169.254.2.3" 8.200 - VM block device(s) : "phy:cdrom,hdd,r" 8.201 - VM cmdline : "ip=128.232.38.51:169.254.1.0:128.232.32.1:255.255.240.0::eth0:off root=/dev/ram0 rw init=/linuxrc 4 LOCALIP=169.254.2.3" 8.202 - 8.203 -xc_dom_create.py will print the local TCP port to which you should 8.204 -connect to perform console I/O. A suitable console client is provided 8.205 -by the Python module xenctl.console_client: running this module from 8.206 -the command line with <host> and <port> parameters will start a 8.207 -terminal session. This module is also installed as /usr/bin/xencons, 8.208 -from a copy in tools/misc/xencons. An alternative to manually running 8.209 -a terminal client is to specify '-c' to xc_dom_create.py, or add 8.210 -'auto_console=True' to the defaults file. This will cause 8.211 -xc_dom_create.py to automatically become the console terminal after 8.212 -starting the domain. 8.213 - 8.214 -The 169.254.x.x network is special in that it is the 'link local' 8.215 -subnet, and is isolated from the external network and hence can only 8.216 -be used for communication between virtual machines. By convention, we 8.217 -usually give each domain a link local address. The startup scripts on 8.218 -the CD have been modified to accept a LINKLOCAL= parameter on the 8.219 -kernel command line and initialise an IP alias accordingly (see 8.220 -/etc/sysinit/network-scripts/ifcfg-eth0). 8.221 - 8.222 -Linux only allows one IP address to be specified on the kernel command 8.223 -line, so if you specify multiple IP addresses you'll need to configure 8.224 -the new Linux VM with the other addresses manually (using ifconfig) 8.225 -having logged in. 8.226 - 8.227 -If you inspect the 'defaults' config script you'll see that the new 8.228 -domain was started with a '4' on the kernel command line to tell 8.229 -'init' to go to runlevel 4 rather than the default of 3 used by 8.230 -domain0. This is done simply to suppress a bunch of harmless error 8.231 -messages that would otherwise occur when the new (unprivileged) domain 8.232 -tried to access physical hardware resources to try setting the 8.233 -hwclock, system font, run gpm etc. 8.234 - 8.235 -After it's booted, you should be able to ssh into your new domain from 8.236 -domain0 using the link local 19.254.x.x address you assigned. If you 8.237 -assigned a further IP address you should be able to ssh in using that 8.238 -address too. If you ran the xen_enable_nat script, a bunch of port 8.239 -redirects have been installed to enable you to ssh in to other domains 8.240 -remotely even if you didn't assign an externally routeable address. 8.241 -To access the new virtual machine remotely, use: 8.242 - 8.243 - ssh -p2201 root@IP.address.Of.Domain0 # use 2202 for domain 2 etc. 8.244 - 8.245 -You can manipulate running domains using the xc_dom_control.py tool. 8.246 -Invoking it without arguments prints some usage information. 8.247 - 8.248 -To see what domains are running, run 'xc_dom_control.py list'. Using the 8.249 -tool you can change scheduling parameters, pause a domain, send it a 8.250 -shutdown request, or blow it away with the 'destroy' command. You can 8.251 -even suspend it to disk (but you probably won't have enough memory to 8.252 -do the latter if you're running off the demo CD). 8.253 - 8.254 -To find usage information for xc_dom_control.py, run the script with 8.255 -no arguments. 8.256 - 8.257 - 8.258 -Troubleshooting Problems 8.259 -======================== 8.260 - 8.261 -If you have problems booting Xen, there are a number of boot parameters 8.262 -that may be able to help diagnose problems: 8.263 - 8.264 - ignorebiostables Disable parsing of BIOS-supplied tables. This may 8.265 - help with some chipsets that aren't fully supported 8.266 - by Xen. If you specify this option then ACPI tables are 8.267 - also ignored, and SMP support is disabled. 8.268 - 8.269 - noreboot Don't reboot the machine automatically on errors. 8.270 - This is useful to catch debug output if you aren't 8.271 - catching console messages via the serial line. 8.272 - 8.273 - nosmp Disable SMP support. 8.274 - This option is implied by 'ignorebiostables'. 8.275 - 8.276 - noacpi Disable ACPI tables, which confuse Xen on some chipsets. 8.277 - This option is implied by 'ignorebiostables'. 8.278 - 8.279 - watchdog Enable NMI watchdog which can report certain failures. 8.280 - 8.281 - noht Disable Hyperthreading. 8.282 - 8.283 - badpage=<page number>[,<page number>]* 8.284 - Specify a list of pages not to be allocated for use 8.285 - because they contain bad bytes. For example, if your 8.286 - memory tester says that byte 0x12345678 is bad, you would 8.287 - place 'badpage=0x12345' on Xen's command line (i.e., the 8.288 - last three digits of the byte address are not included!). 8.289 - 8.290 - com1=<baud>,DPS[,<io_base>,<irq>] 8.291 - com2=<baud>,DPS[,<io_base>,<irq>] 8.292 - Xen supports up to two 16550-compatible serial ports. 8.293 - For example: 'com1=9600,8n1,0x408,5' maps COM1 to a 8.294 - 9600-baud port, 8 data bits, no parity, 1 stop bit, 8.295 - I/O port base 0x408, IRQ 5. 8.296 - If the I/O base and IRQ are standard (com1:0x3f8,4; 8.297 - com2:0x2f8,3) then they need not be specified. 8.298 - 8.299 - console=<specifier list> 8.300 - Specify the destination for Xen console I/O. 8.301 - This is a comma-separated list of, for example: 8.302 - vga: use VGA console and allow keyboard input 8.303 - com1: use serial port com1 8.304 - com2H: use serial port com2. Transmitted chars will 8.305 - have the MSB set. Received chars must have 8.306 - MSB set. 8.307 - com2L: use serial port com2. Transmitted chars will 8.308 - have the MSB cleared. Received chars must 8.309 - have MSB cleared. 8.310 - The latter two examples allow a single port to be 8.311 - shared by two subsystems (eg. console and 8.312 - debugger). Sharing is controlled by MSB of each 8.313 - transmitted/received character. 8.314 - [NB. Default for this option is 'com1,vga'] 8.315 - 8.316 - conswitch=<switch-char><auto-switch-char> 8.317 - Specify how to switch serial-console input between 8.318 - Xen and DOM0. The required sequence is CTRL-<switch_char> 8.319 - pressed three times. Specifying '`' disables switching. 8.320 - The <auto-switch-char> specifies whether Xen should 8.321 - auto-switch input to DOM0 when it boots -- if it is 'x' 8.322 - then auto-switching is disabled. Any other value, or 8.323 - omitting the character, enables auto-switching. 8.324 - [NB. Default for this option is 'a'] 8.325 - 8.326 - nmi=<nmi-error-behaviour> 8.327 - Specify what to do with an NMI parity or I/O error. 8.328 - 'nmi=fatal': Xen prints a diagnostic and then hangs. 8.329 - 'nmi=dom0': Inform DOM0 of the NMI. 8.330 - 'nmi=ignore': Ignore the NMI. 8.331 - [NB. Default is 'dom0' ('fatal' for debug builds).] 8.332 - 8.333 - dom0_mem=xxx Set the initial amount of memory for domain0. 8.334 - 8.335 - pdb=xxx Enable the pervasive debugger. See docs/pdb.txt 8.336 - xxx defines how the gdb stub will communicate: 8.337 - com1 use com1 8.338 - com1H use com1 (with high bit set) 8.339 - com2 use on com2 8.340 - com2H use com2 (with high bit set) 8.341 - 8.342 -It's probably a good idea to join the Xen developer's mailing list on 8.343 -Sourceforge: http://lists.sourceforge.net/lists/listinfo/xen-devel 8.344 - 8.345 - 8.346 -About The Xen Demo CD 8.347 -===================== 8.348 - 8.349 -The purpose of the Demo CD is to distribute a snapshot of Xen's 8.350 -source, and simultaneously provide a convenient means for enabling 8.351 -people to get experience playing with Xen without needing to install 8.352 -it on their hard drive. If you decide to install Xen/Xenlinux you can 8.353 -do so simply by following the installation instructions below -- which 8.354 -essentially involves copying the contents of the CD on to a suitably 8.355 -formated disk partition, and then installing or updating the Grub 8.356 -bootloader. 8.357 - 8.358 -This is a bootable CD that loads Xen, and then a Linux 2.4.22 OS image 8.359 -ported to run on Xen. The CD contains a copy of a file system based on 8.360 -the RedHat 9 distribution that is able to run directly off the CD 8.361 -("live ISO"), using a "tmpfs" RAM-based file system for root (/etc 8.362 -/var etc). Changes you make to the tmpfs will obviously not be 8.363 -persistent across reboots! 8.364 - 8.365 -Because of the use of a RAM-based file system for root, you'll need 8.366 -plenty of memory to run this CD -- something like 96MB per VM. This is 8.367 -not a restriction of Xen : once you've installed Xen, Xenlinux and 8.368 -the file system images on your hard drive you'll find you can boot VMs 8.369 -in just a few MBs. 8.370 - 8.371 -The CD contains a snapshot of the Xen and Xenlinux code base that we 8.372 -believe to be pretty stable, but lacks some of the features that are 8.373 -currently still work in progress e.g. OS suspend/resume to disk, and 8.374 -various memory management enhancements to provide fast inter-OS 8.375 -communication and sharing of memory pages between OSs. We'll release 8.376 -newer snapshots as required, making use of a BitKeeper repository 8.377 -hosted on http://xen.bkbits.net (follow instructions from the project 8.378 -home page). We're obviously grateful to receive any bug fixes or 8.379 -other code you can contribute. We suggest you join the 8.380 -xen-devel@lists.sourceforge.net mailing list. 8.381 - 8.382 - 8.383 -Installing from the CD 8.384 -====================== 8.385 - 8.386 -If you're installing Xen/Xenlinux onto an existing linux file system 8.387 -distribution, just copy the Xen VMM (/boot/image.gz) and Xenlinux 8.388 -kernels (/boot/xenlinux.gz), then modify the Grub config 8.389 -(/boot/grub/menu.lst or /boot/grub/grub.conf) on the target system. 8.390 -It should work on pretty much any distribution. 8.391 - 8.392 -Xen is a "multiboot" standard boot image. Despite being a 'standard', 8.393 -few boot loaders actually support it. The only two we know of are 8.394 -Grub, and our modified version of linux kexec (for booting off a 8.395 -XenoBoot CD -- PlanetLab have adopted the same boot CD approach). 8.396 - 8.397 -If you need to install grub on your system, you can do so either by 8.398 -building the Grub source tree 8.399 -/usr/local/src/grub-0.93-iso9660-splashimage or by copying over all 8.400 -the files in /boot/grub and then running /sbin/grub and following the 8.401 -usual grub documentation. You'll then need to edit the Grub 8.402 -config file. 8.403 - 8.404 -A typical Grub menu option might look like: 8.405 - 8.406 -title Xen / Xenlinux 2.4.26 8.407 - kernel /boot/xen.gz dom0_mem=131072 com1=115200 noht watchdog 8.408 - module /boot/vmlinuz-2.4.26-xen0 root=/dev/sda4 ro 8.409 - 8.410 -The first line specifies which Xen image to use, and what command line 8.411 -arguments to pass to Xen. In this case we set the maximum amount of 8.412 -memory to allocate to domain0, and enable serial I/O on COM1 at 115200 8.413 -baud. We could also disable smp support (nosmp) or disable 8.414 -hyper-threading support (noht). 8.415 - 8.416 -The second line specifies which xenlinux image to use, and the 8.417 -standard linux command line arguments to pass to the kernel. In this 8.418 -case, we're configuring the root partition and stating that it should 8.419 -initially be mounted read-only (normal practice). 8.420 - 8.421 -If we were booting with an initial ram disk (initrd), then this would 8.422 -require a second "module" line. 8.423 - 8.424 -Installing the Xen tools and source 8.425 -=================================== 8.426 - 8.427 -The tools and source live in the /usr/local/src/xen-2.0 directory on 8.428 -the CD (and may also be downloaded from the project downloads 8.429 -page). You'll need to copy them to some mutable storage before using 8.430 -them. 8.431 - 8.432 -If you have the BitKeeper BK tools installed you can check the 8.433 -repository is up to date by cd'ing into the xeno-2.0.bk directory and 8.434 -typing 'bk pull' (assuming you have an Internet connection). 8.435 - 8.436 -You can rebuild Xen, the tools and XenLinux by typing 'make 8.437 -world'. You can install them to the standard directories with 'make 8.438 -install', or into the ./install subtree with 'make dist'. 8.439 - 8.440 - 8.441 -Modifying xc_mycreatelinuxdom1.py 8.442 -================================= 8.443 - 8.444 -xc_mycreatelinuxdom1.py.py can be used to set the new kernel's command line, 8.445 -and hence determine what it uses as a root file system, etc. Although 8.446 -the default is to boot in the same manner that domain0 did (using the 8.447 -RAM-based file system for root and the CD for /usr) it's possible to 8.448 -configure any of the following possibilities, for example: 8.449 - 8.450 - * initrd=/boot/initrd init=/linuxrc 8.451 - boot using an initial ram disk, executing /linuxrc (as per this CD) 8.452 - 8.453 - * root=/dev/hda3 ro 8.454 - boot using a standard hard disk partition as root 8.455 - !!! remember to grant access in createlinuxdom.py. 8.456 - 8.457 - * root=/dev/xvda1 ro 8.458 - boot using a pre-configured 'virtual block device' that will be 8.459 - attached to a virtual disk that previously has had a file system 8.460 - installed on it. 8.461 - 8.462 - * root=/dev/nfs nfsroot=/path/on/server ip=<blah_including server_IP> 8.463 - Boot using an NFS mounted root file system. This could be from a 8.464 - remote NFS server, or from an NFS server running in another 8.465 - domain. The latter is rather a useful option. 8.466 - 8.467 -A typical setup might be to allocate a standard disk partition for 8.468 -each domain and populate it with files. To save space, having a shared 8.469 -read-only usr partition might make sense. 8.470 - 8.471 -Block devices should only be shared between domains in a read-only 8.472 -fashion otherwise the linux kernels will obviously get very confused 8.473 -as the file system structure may change underneath them (having the 8.474 -same partition mounted rw twice is a sure fire way to cause 8.475 -irreparable damage)! If you want read-write sharing, export the 8.476 -directory to other domains via NFS from domain0. 8.477 - 8.478 - 8.479 - 8.480 - 8.481 -Installing the file systems from the CD 8.482 -======================================= 8.483 - 8.484 -If you haven't got an existing Linux installation onto which you can 8.485 -just drop down the Xen and Xenlinux images, then the file systems on 8.486 -the CD provide a quick way of doing an install. However, you're 8.487 -probably better off in the long run doing a proper Redhat, Fedora, 8.488 -Debian etc install rather than just doing the hack described below: 8.489 - 8.490 -Choose one or two partitions, depending on whether you want a separate 8.491 -/usr or not. Make file systems on it/them e.g.: 8.492 - mkfs -t ext3 /dev/hda3 8.493 - [or mkfs -t ext2 /dev/hda3 && tune2fs -j /dev/hda3 if using an old 8.494 -version of mkfs] 8.495 - 8.496 -Next, mount the file system(s) e.g.: 8.497 - mkdir /mnt/root && mount /dev/hda3 /mnt/root 8.498 - [mkdir /mnt/usr && mount /dev/hda4 /mnt/usr] 8.499 - 8.500 -To install the root file system, simply untar /usr/XenDemoCD/root.tar.gz: 8.501 - cd /mnt/root && tar -zxpf /usr/XenDemoCD/root.tar.gz 8.502 - 8.503 -You'll need to edit /mnt/root/etc/fstab to reflect your file system 8.504 -configuration. Changing the password file (etc/shadow) is probably a 8.505 -good idea too. 8.506 - 8.507 -To install the usr file system, copy the file system from CD on /usr, 8.508 -though leaving out the "XenDemoCD" and "boot" directories: 8.509 - cd /usr && cp -a X11R6 etc java libexec root src bin dict kerberos local sbin tmp doc include lib man share /mnt/usr 8.510 - 8.511 -If you intend to boot off these file systems (i.e. use them for 8.512 -domain 0), then you probably want to copy the /usr/boot directory on 8.513 -the cd over the top of the current symlink to /boot on your root 8.514 -filesystem (after deleting the current symlink) i.e.: 8.515 - cd /mnt/root ; rm boot ; cp -a /usr/boot . 8.516 - 8.517 -The XenDemoCD directory is only useful if you want to build your own 8.518 -version of the XenDemoCD (see below). 8.519 - 8.520 - 8.521 -Debugging 8.522 -========= 8.523 - 8.524 -Xen has a set of debugging features that can be useful to try and 8.525 -figure out what's going on. Hit 'h' on the serial line (if you 8.526 -specified a baud rate on the Xen command line) or ScrollLock-h on the 8.527 -keyboard to get a list of supported commands. 8.528 - 8.529 -If you have a crash you'll likely get a crash dump containing an EIP 8.530 -(PC) which, along with an 'objdump -d image', can be useful in 8.531 -figuring out what's happened. Debug a Xenlinux image just as you 8.532 -would any other Linux kernel. 8.533 - 8.534 -We supply a handy debug terminal program which you can find in 8.535 -/usr/local/src/xen-1.0/xeno-1.0.bk/tools/misc/miniterm/ 8.536 -This should be built and executed on another machine that is connected 8.537 -via a null modem cable. Documentation is included. 8.538 -Alternatively, if the Xen machine is connected to a serial-port server 8.539 -then we supply a dumb TCP terminal client: 8.540 - 'tools/xenctl/lib/console_client.py <server host> <server port>' 8.541 - 8.542 - 8.543 -Installing Xen / Xenlinux on a RedHat distribution 8.544 -=================================================== 8.545 - 8.546 -When using Xen / Xenlinux on a standard Linux distribution there are 8.547 -a couple of things to watch out for: 8.548 - 8.549 -The first Linux VM that is started when Xen boots start (Domain 0) is 8.550 -given direct access to the graphics card, so it may use it as a 8.551 -console. Other domains don't have ttyN consoles, so attempts to run a 8.552 -'mingetty' against them will fail, generating periodic warning 8.553 -messages from 'init' about services respawning too fast. They should 8.554 -work for domain0 just fine. 8.555 -IMPORTANT: To prevent warning messages when running RH9 you'll need to 8.556 -remove ttyN from /etc/inittab for domains>0. Due to a bug in the RH9 8.557 -/etc/rc.sysinit script #'ing the lines out of /etc/inittab won't work 8.558 -as it ignores the '#' and tries to access them anyway. 8.559 - 8.560 -Every Xenlinux instance owns a bidirectional 'virtual console'. 8.561 -The device node to which this console is attached can be configured 8.562 -by specifying 'xencons=' on the OS command line: 8.563 - 'xencons=off' --> disable virtual console 8.564 - 'xencons=tty' --> attach console to /dev/tty1 (tty0 at boot-time) 8.565 - 'xencons=ttyS' --> attach console to /dev/ttyS0 8.566 -The default is to attach to /dev/tty1, and also to create dummy 8.567 -devices for /dev/tty2-63 to avoid warnings from many standard distro 8.568 -startup scripts. The exception is domain 0, which by default attaches 8.569 -to /dev/ttyS0. 8.570 - 8.571 -Note that, because domains>0 don't have any privileged access at all, 8.572 -certain commands in the default boot sequence will fail e.g. attempts 8.573 -to update the hwclock, change the console font, update the keytable 8.574 -map, start apmd (power management), or gpm (mouse cursor). Either 8.575 -ignore the errors, or remove them from the startup scripts. Deleting 8.576 -the following links are a good start: S24pcmcia S09isdn S17keytable 8.577 -S26apmd S85gpm 8.578 - 8.579 -If you want to use a single root file system that works cleanly for 8.580 -domain0 and domains>0, one trick is to use different 'init' run 8.581 -levels. For example, on the Xen Demo CD we use run level 3 for domain 8.582 -0, and run level 4 for domains>0. This enables different startup 8.583 -scripts to be run in depending on the run level number passed on the 8.584 -kernel command line. 8.585 - 8.586 -Xenlinux kernels can be built to use runtime loadable modules just 8.587 -like normal linux kernels. Modules should be installed under 8.588 -/lib/modules in the normal way. 8.589 - 8.590 -If there's some kernel feature that hasn't been built into our default 8.591 -kernel, there's a pretty good change that if its a non-hardware 8.592 -related option you'll just be able to enable it and rebuild. If its 8.593 -not on the xconfig menu, hack the arch/xen/config.in to put the menu 8.594 -back in. 8.595 - 8.596 -If you're going to use the link local 169.254.1.x addresses to 8.597 -communicate between VMs, there are a couple of other issues to watch 8.598 -out for. RH9 appears to have a bug where by default it configures the 8.599 -loopback interface with a 169.254 address, which stops it working 8.600 -properly on eth0 for communicating with other domains. 8.601 - 8.602 -This utterly daft RH9 behaviour can be stopped by appending 8.603 -"NOZEROCONF=yes" to /etc/sysconfig/networking-scripts/ifcfg-lo 8.604 - 8.605 -If you're going to use NFS root files systems mounted either from an 8.606 -external server or from domain0 there are a couple of other gotchas. 8.607 -The default /etc/sysconfig/iptables rules block NFS, so part way 8.608 -through the boot sequence things will suddenly go dead. 8.609 - 8.610 -If you're planning on having a separate NFS /usr partition, the RH9 8.611 -boot scripts don't make life easy, as they attempt to mount NFS file 8.612 -systems way to late in the boot process. The easiest way I found to do 8.613 -this was to have a '/linuxrc' script run ahead of /sbin/init that 8.614 -mounts /usr: 8.615 - #!/bin/bash 8.616 - /sbin/ipconfig lo 127.0.0.1 8.617 - /sbin/portmap 8.618 - /bin/mount /usr 8.619 - exec /sbin/init "$@" <>/dev/console 2>&1 8.620 - 8.621 -The one slight complication with the above is that /sbib/portmap is 8.622 -dynamically linked against /usr/lib/libwrap.so.0 Since this is in 8.623 -/usr, it won't work. I solved this by copying the file (and link) 8.624 -below the /usr mount point, and just let the file be 'covered' when 8.625 -the mount happens. 8.626 - 8.627 -In some installations, where a shared read-only /usr is being used, it 8.628 -may be desirable to move other large directories over into the 8.629 -read-only /usr. For example, on the XenDemoCD we replace /bin /lib and 8.630 -/sbin with links into /usr/root/bin /usr/root/lib and /usr/root/sbin 8.631 -respectively. This creates other problems for running the /linuxrc 8.632 -script, requiring bash, portmap, mount, ifconfig, and a handful of 8.633 -other shared libraries to be copied below the mount point. I guess I 8.634 -should have written a little statically linked C program... 8.635 - 8.636 - 8.637 - 8.638 -Description of how the XenDemoCD boots 8.639 -====================================== 8.640 - 8.641 -1. Grub is used to load Xen, a Xenlinux kernel, and an initrd (initial 8.642 -ram disk). [The source of the version of Grub used is in /usr/local/src] 8.643 - 8.644 -2. the init=/linuxrc command line causes linux to execute /linuxrc in 8.645 -the initrd. 8.646 - 8.647 -3. the /linuxrc file attempts to mount the CD by trying the likely 8.648 -locations : /dev/hd[abcd]. 8.649 - 8.650 -4. it then creates a 'tmpfs' file system and untars the 8.651 -'XenDemoCD/root.tar.gz' file into the tmpfs. This contains hopefully 8.652 -all the files that need to be mutable (this would be so much easier 8.653 -if Linux supported 'stacked' or union file systems...) 8.654 - 8.655 -5. Next, /linuxrc uses the pivot_root call to change the root file 8.656 -system to the tmpfs, with the CD mounted as /usr. 8.657 - 8.658 -6. It then invokes /sbin/init in the tmpfs and the boot proceeds 8.659 -normally. 8.660 - 8.661 - 8.662 -Building your own version of the XenDemoCD 8.663 -========================================== 8.664 - 8.665 -The 'live ISO' version of RedHat is based heavily on Peter Anvin's 8.666 -SuperRescue CD version 2.1.2 and J. McDaniel's Plan-B: 8.667 - 8.668 - http://www.kernel.org/pub/dist/superrescue/v2/ 8.669 - http://projectplanb.org/ 8.670 - 8.671 -Since Xen uses a "multiboot" image format, it was necessary to change 8.672 -the bootloader from isolinux to Grub0.93 with Leonid Lisovskiy's 8.673 -<lly@pisem.net> grub.0.93-iso9660.patch 8.674 - 8.675 -The Xen Demo CD contains all of the build scripts that were used to 8.676 -create it, so it is possible to 'unpack' the current iso, modifiy it, 8.677 -then build a new iso. The procedure for doing so is as follows: 8.678 - 8.679 -First, mount either the CD, or the iso image of the CD: 8.680 - 8.681 - mount /dev/cdrom /mnt/cdrom 8.682 -or: 8.683 - mount -o loop xendemo-1.0.iso /mnt/cdrom 8.684 - 8.685 -cd to the directory you want to 'unpack' the iso into then run the 8.686 -unpack script: 8.687 - 8.688 - cd /local/xendemocd 8.689 - /mnt/cdrom/XenDemoCD/unpack-iso.sh 8.690 - 8.691 -The result is a 'build' directory containing the file system tree 8.692 -under the 'root' directory. e.g. /local/xendemocd/build/root 8.693 - 8.694 -To add or remove rpms, its possible to use 'rpm' with the --root 8.695 -option to set the path. For more complex changes, it easiest to boot a 8.696 -machine using using the tree via NFS root. Before doing this, you'll 8.697 -need to edit fstab to comment out the seperate mount of /usr. 8.698 - 8.699 -One thing to watch out for: as part of the CD build process, the 8.700 -contents of the 'rootpatch' tree gets copied over the existing 'root' 8.701 -tree replacing various files. The intention of the rootpatch tree is 8.702 -to contain the files that have been modified from the original RH 8.703 -distribution (e.g. various /etc files). This was done to make it 8.704 -easier to upgrade to newer RH versions in the future. The downside of 8.705 -this is that if you edit an existing file in the root tree you should 8.706 -check that you don't also need to propagate the change to the 8.707 -rootpatch tree to avoid it being overwritten. 8.708 - 8.709 -Once you've made the changes and want to build a new iso, here's the 8.710 -procedure: 8.711 - 8.712 -cd /local/xendemocd/build 8.713 -echo '<put_your_name_here>' > Builder 8.714 -./make.sh put_your_version_id_here >../buildlog 2>&1 8.715 - 8.716 -This process can take 30 mins even on a fast machine, but you should 8.717 -eventually end up with an iso image in the build directory. 8.718 - 8.719 -Notes: 8.720 - 8.721 - root - the root of the file system heirarchy as presented to the 8.722 - running system 8.723 - 8.724 - rootpatch - contains files that have been modified from the standard 8.725 - RH, and copied over the root tree as part of the build 8.726 - procedure. 8.727 - 8.728 - irtree - the file system tree that will go into the initrd (initial 8.729 - ram disk) 8.730 - 8.731 - work - a working directory used in the build process 8.732 - 8.733 - usr - this should really be in 'work' as its created as part of the 8.734 - build process. It contains the 'immutable' files that will 8.735 - be served from the CD rather than the tmpfs containing the 8.736 - contents of root.tar.gz. Some files that are normally in /etc 8.737 - or /var that are large and actually unlikely to need changing 8.738 - have been moved into /usr/root and replaced with links. 8.739 - 8.740 - 8.741 -Ian Pratt 8.742 -9 Sep 2003
9.1 --- a/TODO Fri Aug 06 12:20:20 2004 +0000 9.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 9.3 @@ -1,50 +0,0 @@ 9.4 - 9.5 - 9.6 -Known limitations and work in progress 9.7 -====================================== 9.8 - 9.9 -The current Xen Virtual Firewall Router (VFR) implementation in the 9.10 -snapshot tree is very rudimentary, and in particular, lacks the RSIP 9.11 -IP port-space sharing across domains that provides a better 9.12 -alternative to NAT. There's a complete new implementation under 9.13 -development which also supports much better logging and auditing 9.14 -support. For now, if you want NAT, see the xen_nat_enable scripts and 9.15 -get domain0 to do it for you. 9.16 - 9.17 -There are also a number of memory management enhancements that didn't 9.18 -make this release: We have plans for a "universal buffer cache" that 9.19 -enables otherwise unused system memory to be used by domains in a 9.20 -read-only fashion. We also have plans for inter-domain shared-memory 9.21 -to enable high-performance bulk transport for cases where the usual 9.22 -internal networking performance isn't good enough (e.g. communication 9.23 -with a internal file server on another domain). 9.24 - 9.25 -We have the equivalent of balloon driver functionality to control 9.26 -domain's memory usage, enabling a domain to give back unused pages to 9.27 -Xen. This needs properly documenting, and perhaps a way of domain0 9.28 -signalling to a domain that it requires it to reduce its memory 9.29 -footprint, rather than just the domain volunteering (see section on 9.30 -the improved control interface). 9.31 - 9.32 -The current disk scheduler is rather simplistic (batch round robin), 9.33 -and could be replaced by e.g. Cello if we have QoS isolation 9.34 -problems. For most things it seems to work OK, but there's currently 9.35 -no service differentiation or weighting. 9.36 - 9.37 -Currently, although Xen runs on SMP and SMT (hyperthreaded) machines, 9.38 -the scheduling is far from smart -- domains are currently statically 9.39 -assigned to a CPU when they are created (in a round robin fashion). 9.40 -The scheduler needs to be modified such that before going idle a 9.41 -logical CPU looks for work on other run queues (particularly on the 9.42 -same physical CPU). 9.43 - 9.44 -Xen currently only supports uniprocessor guest OSes. We have designed 9.45 -the Xen interface with MP guests in mind, and plan to build an MP 9.46 -Linux guest in due course. Basically, an MP guest would consist of 9.47 -multiple scheduling domains (one per CPU) sharing a single memory 9.48 -protection domain. The only extra complexity for the Xen VM system is 9.49 -ensuring that when a page transitions from holding a page table or 9.50 -page directory to a write-able page, we must ensure that no other CPU 9.51 -still has the page in its TLB to ensure memory system integrity. One 9.52 -other issue for supporting MP guests is that we'll need some sort of 9.53 -CPU gang scheduler, which will require some research.
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/buildconfigs/Rules.mk Thu Feb 10 13:17:10 2005 +0000 10.3 @@ -0,0 +1,83 @@ 10.4 + 10.5 +# We expect these two to already be set if people 10.6 +# are using the top-level Makefile 10.7 +DISTDIR ?= $(CURDIR)/dist 10.8 +DESTDIR ?= $(DISTDIR)/install 10.9 + 10.10 +.PHONY: mkpatches mrproper 10.11 + 10.12 +# Setup pristine search path 10.13 +PRISTINE_SRC_PATH ?= .:.. 10.14 +vpath pristine-% $(PRISTINE_SRC_PATH) 10.15 + 10.16 +# Expand Linux series to Linux version 10.17 +LINUX_SERIES ?= 2.6 10.18 +LINUX_VER ?= $(patsubst linux-%-xen-sparse,%,$(wildcard linux-$(LINUX_SERIES)*-xen-sparse)) 10.19 + 10.20 +# Setup Linux search path 10.21 +LINUX_SRC_PATH ?= .:.. 10.22 +vpath linux-%.tar.bz2 $(LINUX_SRC_PATH) 10.23 + 10.24 +# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH 10.25 +linux-%.tar.bz2: override _LINUX_VDIR = $(word 1,$(subst ., ,$*)).$(word 2,$(subst ., ,$*)) 10.26 +linux-%.tar.bz2: 10.27 + @echo "Cannot find $@ in path $(LINUX_SRC_PATH)" 10.28 + wget http://www.kernel.org/pub/linux/kernel/v$(_LINUX_VDIR)/$@ -O./$@ 10.29 + 10.30 +# Expand NetBSD release to NetBSD version 10.31 +NETBSD_RELEASE ?= 2.0 10.32 +NETBSD_VER ?= $(patsubst netbsd-%-xen-sparse,%,$(wildcard netbsd-$(NETBSD_RELEASE)*-xen-sparse)) 10.33 +NETBSD_CVSSNAP ?= 20041103 10.34 + 10.35 +# Setup NetBSD search path 10.36 +NETBSD_SRC_PATH ?= .:.. 10.37 +vpath netbsd-%.tar.bz2 $(NETBSD_SRC_PATH) 10.38 + 10.39 +# download a pristine NetBSD tarball if there isn't one in NETBSD_SRC_PATH 10.40 +netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2: 10.41 + @echo "Cannot find $@ in path $(NETBSD_SRC_PATH)" 10.42 + wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/$@ -O./$@ 10.43 + 10.44 +netbsd-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 10.45 + ln -fs $< $@ 10.46 + 10.47 +pristine-%: %.tar.bz2 10.48 + rm -rf tmp-$(@F) $@ 10.49 + mkdir -p tmp-$(@F) 10.50 + tar -C tmp-$(@F) -jxf $< 10.51 + mv tmp-$(@F)/* $@ 10.52 + touch $@ # update timestamp to avoid rebuild 10.53 + @rm -rf tmp-$(@F) 10.54 + [ -d patches/$* ] && \ 10.55 + for i in patches/$*/*.patch ; do ( cd $@ ; patch -p1 <../$$i ) ; done || \ 10.56 + true 10.57 + 10.58 +%-build: 10.59 + $(MAKE) -f buildconfigs/mk.$* build 10.60 + 10.61 +%-delete: 10.62 + $(MAKE) -f buildconfigs/mk.$* delete 10.63 + 10.64 +%-clean: 10.65 + $(MAKE) -f buildconfigs/mk.$* clean 10.66 + 10.67 +%-xen.patch: pristine-% 10.68 + rm -rf tmp-$@ 10.69 + cp -al $< tmp-$@ 10.70 + ( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ ) 10.71 + diff -Nurp $< tmp-$@ > $@ || true 10.72 + rm -rf tmp-$@ 10.73 + 10.74 +%-mrproper: %-mrproper-extra 10.75 + rm -rf pristine-$* $*.tar.bz2 10.76 + rm -rf $*-xen.patch 10.77 + 10.78 +netbsd-%-mrproper-extra: 10.79 + rm -rf netbsd-$*-tools netbsd-$*-tools.tar.bz2 10.80 + rm -f netbsd-$*-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 10.81 + 10.82 +%-mrproper-extra: 10.83 + @: # do nothing 10.84 + 10.85 +# never delete any intermediate files. 10.86 +.SECONDARY:
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/buildconfigs/mk.linux-2.4-xen0 Thu Feb 10 13:17:10 2005 +0000 11.3 @@ -0,0 +1,51 @@ 11.4 + 11.5 +LINUX_SERIES = 2.4 11.6 + 11.7 +EXTRAVERSION = xen0 11.8 + 11.9 +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) 11.10 + 11.11 +LINUX_DIR = linux-$(FULLVERSION) 11.12 + 11.13 +include buildconfigs/Rules.mk 11.14 + 11.15 +.PHONY: build clean delete 11.16 + 11.17 +# The real action starts here! 11.18 +build: $(LINUX_DIR)/include/linux/autoconf.h 11.19 + if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ 11.20 + $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \ 11.21 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \ 11.22 + fi 11.23 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install 11.24 + 11.25 +patches/tmp/ebtables.diff: 11.26 + mkdir -p patches/tmp 11.27 + wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@ 11.28 + 11.29 +$(LINUX_DIR)/include/linux/autoconf.h: patches/tmp/ebtables.diff 11.30 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER) 11.31 + rm -rf $(LINUX_DIR) 11.32 + cp -al $< $(LINUX_DIR) 11.33 + # Apply arch-xen patches 11.34 + ( cd linux-$(LINUX_VER)-xen-sparse ; \ 11.35 + ./mkbuildtree ../$(LINUX_DIR) ) 11.36 + # Patch kernel Makefile to set EXTRAVERSION 11.37 + ( cd $(LINUX_DIR) ; \ 11.38 + sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \ 11.39 + rm -f Makefile ; mv Mk.tmp Makefile ) 11.40 + # add ebtables patch 11.41 + ( cd $(LINUX_DIR) ; patch -p1 -F3 < ../patches/tmp/ebtables.diff ) 11.42 + # Re-use config from install dir if one exits else use default config 11.43 + [ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \ 11.44 + cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \ 11.45 + || cp $(LINUX_DIR)/arch/xen/defconfig-$(EXTRAVERSION) \ 11.46 + $(LINUX_DIR)/.config 11.47 + make -C $(LINUX_DIR) ARCH=xen oldconfig 11.48 + make -C $(LINUX_DIR) ARCH=xen dep 11.49 + 11.50 +clean: 11.51 + $(MAKE) -C $(LINUX_DIR) ARCH=xen clean 11.52 + 11.53 +delete: 11.54 + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR)
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/buildconfigs/mk.linux-2.4-xenU Thu Feb 10 13:17:10 2005 +0000 12.3 @@ -0,0 +1,44 @@ 12.4 + 12.5 +LINUX_SERIES = 2.4 12.6 + 12.7 +EXTRAVERSION = xenU 12.8 + 12.9 +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) 12.10 + 12.11 +LINUX_DIR = linux-$(FULLVERSION) 12.12 + 12.13 +include buildconfigs/Rules.mk 12.14 + 12.15 +.PHONY: build clean delete 12.16 + 12.17 +# The real action starts here! 12.18 +build: $(LINUX_DIR)/include/linux/autoconf.h 12.19 + if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ 12.20 + $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \ 12.21 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \ 12.22 + fi 12.23 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install 12.24 + 12.25 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER) 12.26 + rm -rf $(LINUX_DIR) 12.27 + cp -al $< $(LINUX_DIR) 12.28 + # Apply arch-xen patches 12.29 + ( cd linux-$(LINUX_VER)-xen-sparse ; \ 12.30 + ./mkbuildtree ../$(LINUX_DIR) ) 12.31 + # Patch kernel Makefile to set EXTRAVERSION 12.32 + ( cd $(LINUX_DIR) ; \ 12.33 + sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \ 12.34 + rm -f Makefile ; mv Mk.tmp Makefile ) 12.35 + # Re-use config from install dir if one exits else use default config 12.36 + [ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \ 12.37 + cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \ 12.38 + || cp $(LINUX_DIR)/arch/xen/defconfig-$(EXTRAVERSION) \ 12.39 + $(LINUX_DIR)/.config 12.40 + make -C $(LINUX_DIR) ARCH=xen oldconfig 12.41 + make -C $(LINUX_DIR) ARCH=xen dep 12.42 + 12.43 +clean: 12.44 + $(MAKE) -C $(LINUX_DIR) ARCH=xen clean 12.45 + 12.46 +delete: 12.47 + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR)
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/buildconfigs/mk.linux-2.6-xen0 Thu Feb 10 13:17:10 2005 +0000 13.3 @@ -0,0 +1,43 @@ 13.4 + 13.5 +LINUX_SERIES = 2.6 13.6 + 13.7 +EXTRAVERSION = xen0 13.8 + 13.9 +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) 13.10 + 13.11 +LINUX_DIR = linux-$(FULLVERSION) 13.12 + 13.13 +include buildconfigs/Rules.mk 13.14 + 13.15 +.PHONY: build clean delete 13.16 + 13.17 +# The real action starts here! 13.18 +build: $(LINUX_DIR)/include/linux/autoconf.h 13.19 + if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ 13.20 + $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \ 13.21 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \ 13.22 + fi 13.23 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install 13.24 + 13.25 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER) 13.26 + rm -rf $(LINUX_DIR) 13.27 + cp -al $< $(LINUX_DIR) 13.28 + # Apply arch-xen patches 13.29 + ( cd linux-$(LINUX_VER)-xen-sparse ; \ 13.30 + ./mkbuildtree ../$(LINUX_DIR) ) 13.31 + # Patch kernel Makefile to set EXTRAVERSION 13.32 + ( cd $(LINUX_DIR) ; \ 13.33 + sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \ 13.34 + rm -f Makefile ; mv Mk.tmp Makefile ) 13.35 + # Re-use config from install dir if one exits else use default config 13.36 + [ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \ 13.37 + cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \ 13.38 + || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \ 13.39 + $(LINUX_DIR)/.config 13.40 + $(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig 13.41 + 13.42 +clean: 13.43 + $(MAKE) -C $(LINUX_DIR) ARCH=xen clean 13.44 + 13.45 +delete: 13.46 + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR)
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/buildconfigs/mk.linux-2.6-xenU Thu Feb 10 13:17:10 2005 +0000 14.3 @@ -0,0 +1,43 @@ 14.4 + 14.5 +LINUX_SERIES = 2.6 14.6 + 14.7 +EXTRAVERSION = xenU 14.8 + 14.9 +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) 14.10 + 14.11 +LINUX_DIR = linux-$(FULLVERSION) 14.12 + 14.13 +include buildconfigs/Rules.mk 14.14 + 14.15 +.PHONY: build clean delete 14.16 + 14.17 +# The real action starts here! 14.18 +build: $(LINUX_DIR)/include/linux/autoconf.h 14.19 + if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ 14.20 + $(MAKE) -C $(LINUX_DIR) ARCH=xen modules ; \ 14.21 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \ 14.22 + fi 14.23 + $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(DESTDIR) install 14.24 + 14.25 +$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER) 14.26 + rm -rf $(LINUX_DIR) 14.27 + cp -al $< $(LINUX_DIR) 14.28 + # Apply arch-xen patches 14.29 + ( cd linux-$(LINUX_VER)-xen-sparse ; \ 14.30 + ./mkbuildtree ../$(LINUX_DIR) ) 14.31 + # Patch kernel Makefile to set EXTRAVERSION 14.32 + ( cd $(LINUX_DIR) ; \ 14.33 + sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \ 14.34 + rm -f Makefile ; mv Mk.tmp Makefile ) 14.35 + # Re-use config from install dir if one exits else use default config 14.36 + [ -r $(DESTDIR)/boot/config-$(FULLVERSION) ] && \ 14.37 + cp $(DESTDIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \ 14.38 + || cp $(LINUX_DIR)/arch/xen/configs/$(EXTRAVERSION)_defconfig \ 14.39 + $(LINUX_DIR)/.config 14.40 + $(MAKE) -C $(LINUX_DIR) ARCH=xen oldconfig 14.41 + 14.42 +clean: 14.43 + $(MAKE) -C $(LINUX_DIR) ARCH=xen clean 14.44 + 14.45 +delete: 14.46 + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR)
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/buildconfigs/mk.netbsd-2.0-xenU Thu Feb 10 13:17:10 2005 +0000 15.3 @@ -0,0 +1,43 @@ 15.4 + 15.5 +NETBSD_RELEASE ?= 2.0 15.6 +NETBSD_CVSSNAP ?= 20041103 15.7 + 15.8 +EXTRAVERSION = xenU 15.9 + 15.10 +FULLVERSION = $(NETBSD_VER)-$(EXTRAVERSION) 15.11 + 15.12 +NETBSD_DIR = netbsd-$(FULLVERSION) 15.13 + 15.14 +.PHONY: build clean mrproper mkpatch 15.15 + 15.16 +include buildconfigs/Rules.mk 15.17 + 15.18 +build: netbsd-$(EXTRAVERSION) 15.19 + 15.20 +netbsd-%-tools.tar.bz2: 15.21 + @echo "Cannot find netbsd-$(NETBSD_VER)-tools.tar.gz in path $(NETBSD_SRC_PATH)" 15.22 + wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$*-tools.tar.bz2 -O./$@ 15.23 + 15.24 +netbsd-%-tools: netbsd-%-tools.tar.bz2 15.25 + tar -jxf $< 15.26 + touch $@ # update timestamp to avoid rebuild 15.27 + 15.28 +$(NETBSD_DIR)/.valid: pristine-netbsd-$(NETBSD_VER) 15.29 + $(RM) -rf $(NETBSD_DIR) 15.30 + cp -al $< $(NETBSD_DIR) 15.31 + # Apply arch-xen patches 15.32 + ( cd netbsd-$(NETBSD_VER)-xen-sparse ; \ 15.33 + ./mkbuildtree ../$(NETBSD_DIR) ) 15.34 + @touch $(NETBSD_DIR)/.valid 15.35 + 15.36 +# build the specified netbsd tree 15.37 +netbsd-xen%: $(NETBSD_DIR)/.valid netbsd-$(NETBSD_RELEASE)-tools 15.38 + $(MAKE) -C netbsd-$(FULLVERSION) config 15.39 + $(MAKE) -C netbsd-$(FULLVERSION) netbsd 15.40 + $(MAKE) -C netbsd-$(FULLVERSION) INSTALL_PATH=$(DESTDIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-xen$* install 15.41 + 15.42 +clean: 15.43 + $(MAKE) -C netbsd-$(FULLVERSION) clean 15.44 + 15.45 +delete: 15.46 + rm -rf tmp-netbsd-$(NETBSD_VER) $(NETBSD_DIR)
16.1 --- a/docs/HOWTOs/Console-HOWTO Fri Aug 06 12:20:20 2004 +0000 16.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 16.3 @@ -1,85 +0,0 @@ 16.4 - New console I/O infrastructure in Xen 1.3 16.5 - ========================================= 16.6 - 16.7 - Keir Fraser, University of Cambridge, 3rd June 2004 16.8 - 16.9 - I thought I'd write a quick note about using the new console I/O 16.10 - infrastructure in Xen 1.3. Significant new features compared with 1.2, 16.11 - and with older revisions of 1.3, include: 16.12 - - bi-directional console access 16.13 - - log in to a Xenolinux guest OS via its virtual console 16.14 - - a new terminal client (replaces the use of telnet in character mode) 16.15 - - proper handling of terminal emulation 16.16 - 16.17 -Accessing the virtual console from within the guest OS 16.18 ------------------------------------------------------- 16.19 - Every Xenolinux instance owns a bidirectional 'virtual console'. 16.20 - The device node to which this console is attached can be configured 16.21 - by specifying 'xencons=' on the OS command line: 16.22 - 'xencons=off' --> disable virtual console 16.23 - 'xencons=tty' --> attach console to /dev/tty1 (tty0 at boot-time) 16.24 - 'xencons=ttyS' --> attach console to /dev/ttyS0 16.25 - The default is to attach to /dev/tty1, and also to create dummy 16.26 - devices for /dev/tty2-63 to avoid warnings from many standard distro 16.27 - startup scripts. The exception is domain 0, which by default attaches 16.28 - to /dev/ttyS0. 16.29 - 16.30 -Domain 0 virtual console 16.31 ------------------------- 16.32 - The virtual console for domain 0 is shared with Xen's console. For 16.33 - example, if you specify 'console=com1' as a boot parameter to Xen, 16.34 - then domain 0 will have bi-directional access to the primary serial 16.35 - line. Boot-time messages can be directed to the virtual console by 16.36 - specifying 'console=ttyS0' as a boot parameter to Xenolinux. 16.37 - 16.38 -Connecting to the virtual console 16.39 ---------------------------------- 16.40 - Domain 0 console may be accessed using the supplied 'miniterm' program 16.41 - if raw serial access is desired. If the Xen machine is connected to a 16.42 - serial-port server, then the supplied 'xencons' program may be used to 16.43 - connect to the appropriate TCP port on the server: 16.44 - # xencons <server host> <server port> 16.45 - 16.46 -Logging in via virtual console 16.47 ------------------------------- 16.48 - It is possible to log in to a guest OS via its virtual console if a 16.49 - 'getty' is running. In most domains the virtual console is named tty1 16.50 - so standard startup scripts and /etc/inittab should work 16.51 - fine. Furthermore, tty2-63 are created as dummy console devices to 16.52 - suppress warnings from standard startup scripts. If the OS has 16.53 - attached the virtual console to /dev/ttyS0 then you will need to 16.54 - start a 'mingetty' on that device node. 16.55 - 16.56 -Virtual console for other domains 16.57 ---------------------------------- 16.58 - Every guest OS has a virtual console that is accessible via 16.59 - 'console=tty0' at boot time (or 'console=xencons0' for domain 0), and 16.60 - mingetty running on /dev/tty1 (or /dev/xen/cons for domain 0). 16.61 - However, domains other than domain 0 do not have access to the 16.62 - physical serial line. Instead, their console data is sent to and from 16.63 - a control daemon running in domain 0. When properly installed, this 16.64 - daemon can be started from the init scripts (e.g., rc.local): 16.65 - # /usr/sbin/xend start 16.66 - 16.67 - Alternatively, Redhat- and LSB-compatible Linux installations can use 16.68 - the provided init.d script. To integrate startup and shutdown of xend 16.69 - in such a system, you will need to run a few configuration commands: 16.70 - # chkconfig --add xend 16.71 - # chkconfig --level 35 xend on 16.72 - # chkconfig --level 01246 xend off 16.73 - This will avoid the need to run xend manually from rc.local, for example. 16.74 - 16.75 - Note that, when a domain is created using xc_dom_create.py, xend MUST 16.76 - be running. If everything is set up correctly then xc_dom_create will 16.77 - print the local TCP port to which you should connect to perform 16.78 - console I/O. A suitable console client is provided by the Python 16.79 - module xenctl.console_client: running this module from the command 16.80 - line with <host> and <port> parameters will start a terminal 16.81 - session. This module is also installed as /usr/bin/xencons, from a 16.82 - copy in tools/misc/xencons. For example: 16.83 - # xencons localhost 9600 16.84 - 16.85 - An alternative to manually running a terminal client is to specify 16.86 - '-c' to xc_dom_create.py, or add 'auto_console=True' to the defaults 16.87 - file. This will cause xc_dom_create.py to automatically become the 16.88 - console terminal after starting the domain.
17.1 --- a/docs/HOWTOs/Sched-HOWTO Fri Aug 06 12:20:20 2004 +0000 17.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 17.3 @@ -1,135 +0,0 @@ 17.4 -Xen Scheduler HOWTO 17.5 -=================== 17.6 - 17.7 -by Mark Williamson 17.8 -(c) 2004 Intel Research Cambridge 17.9 - 17.10 - 17.11 -Introduction 17.12 ------------- 17.13 - 17.14 -Xen offers a choice of CPU schedulers. All available schedulers are 17.15 -included in Xen at compile time and the administrator may select a 17.16 -particular scheduler using a boot-time parameter to Xen. It is 17.17 -expected that administrators will choose the scheduler most 17.18 -appropriate to their application and configure the machine to boot 17.19 -with that scheduler. 17.20 - 17.21 -Note: the default scheduler is the Borrowed Virtual Time (BVT) 17.22 -scheduler which was also used in previous releases of Xen. No 17.23 -configuration changes are required to keep using this scheduler. 17.24 - 17.25 -This file provides a brief description of the CPU schedulers available 17.26 -in Xen, what they are useful for and the parameters that are used to 17.27 -configure them. This information is necessarily fairly technical at 17.28 -the moment. The recommended way to fully understand the scheduling 17.29 -algorithms is to read the relevant research papers. 17.30 - 17.31 -The interface to the schedulers is basically "raw" at the moment, 17.32 -without sanity checking - administrators should be careful when 17.33 -setting the parameters since it is possible for a mistake to hang 17.34 -domains, or the entire system (in particular, double check parameters 17.35 -for sanity and make sure that DOM0 will get enough CPU time to remain 17.36 -usable). Note that xc_dom_control.py takes time values in 17.37 -nanoseconds. 17.38 - 17.39 -Future tools will implement friendlier control interfaces. 17.40 - 17.41 - 17.42 -Borrowed Virtual Time (BVT) 17.43 ---------------------------- 17.44 - 17.45 -All releases of Xen have featured the BVT scheduler, which is used to 17.46 -provide proportional fair shares of the CPU based on weights assigned 17.47 -to domains. BVT is "work conserving" - the CPU will never be left 17.48 -idle if there are runnable tasks. 17.49 - 17.50 -BVT uses "virtual time" to make decisions on which domain should be 17.51 -scheduled on the processor. Each time a scheduling decision is 17.52 -required, BVT evaluates the "Effective Virtual Time" of all domains 17.53 -and then schedules the domain with the least EVT. Domains are allowed 17.54 -to "borrow" virtual time by "time warping", which reduces their EVT by 17.55 -a certain amount, so that they may be scheduled sooner. In order to 17.56 -maintain long term fairness, there are limits on when a domain can 17.57 -time warp and for how long. [ For more details read the SOSP'99 paper 17.58 -by Duda and Cheriton ] 17.59 - 17.60 -In the Xen implementation, domains time warp when they unblock, so 17.61 -that domain wakeup latencies are reduced. 17.62 - 17.63 -The BVT algorithm uses the following per-domain parameters (set using 17.64 -xc_dom_control.py cpu_bvtset): 17.65 - 17.66 -* mcuadv - the MCU (Minimum Charging Unit) advance determines the 17.67 - proportional share of the CPU that a domain receives. It 17.68 - is set inversely proportionally to a domain's sharing weight. 17.69 -* warp - the amount of "virtual time" the domain is allowed to warp 17.70 - backwards 17.71 -* warpl - the warp limit is the maximum time a domain can run warped for 17.72 -* warpu - the unwarp requirement is the minimum time a domain must 17.73 - run unwarped for before it can warp again 17.74 - 17.75 -BVT also has the following global parameter (set using 17.76 -xc_dom_control.py cpu_bvtslice): 17.77 - 17.78 -* ctx_allow - the context switch allowance is similar to the "quantum" 17.79 - in traditional schedulers. It is the minimum time that 17.80 - a scheduled domain will be allowed to run before be 17.81 - pre-empted. This prevents thrashing of the CPU. 17.82 - 17.83 -BVT can now be selected by passing the 'sched=bvt' argument to Xen at 17.84 -boot-time and is the default scheduler if no 'sched' argument is 17.85 -supplied. 17.86 - 17.87 -Atropos 17.88 -------- 17.89 - 17.90 -Atropos is a scheduler originally developed for the Nemesis multimedia 17.91 -operating system. Atropos can be used to reserve absolute shares of 17.92 -the CPU. It also includes some features to improve the efficiency of 17.93 -domains that block for I/O and to allow spare CPU time to be shared 17.94 -out. 17.95 - 17.96 -The Atropos algorithm has the following parameters for each domain 17.97 -(set using xc_dom_control.py cpu_atropos_set): 17.98 - 17.99 - * slice - The length of time per period that a domain is guaranteed. 17.100 - * period - The period over which a domain is guaranteed to receive 17.101 - its slice of CPU time. 17.102 - * latency - The latency hint is used to control how soon after 17.103 - waking up a domain should be scheduled. 17.104 - * xtratime - This is a true (1) / false (0) flag that specifies whether 17.105 - a domain should be allowed a share of the system slack time. 17.106 - 17.107 -Every domain has an associated period and slice. The domain should 17.108 -receive 'slice' nanoseconds every 'period' nanoseconds. This allows 17.109 -the administrator to configure both the absolute share of the CPU a 17.110 -domain receives and the frequency with which it is scheduled. When 17.111 -domains unblock, their period is reduced to the value of the latency 17.112 -hint (the slice is scaled accordingly so that they still get the same 17.113 -proportion of the CPU). For each subsequent period, the slice and 17.114 -period times are doubled until they reach their original values. 17.115 - 17.116 -Atropos is selected by adding 'sched=atropos' to Xen's boot-time 17.117 -arguments. 17.118 - 17.119 -Note: don't overcommit the CPU when using Atropos (i.e. don't reserve 17.120 -more CPU than is available - the utilisation should be kept to 17.121 -slightly less than 100% in order to ensure predictable behaviour). 17.122 - 17.123 -Round-Robin 17.124 ------------ 17.125 - 17.126 -The Round-Robin scheduler is provided as a simple example of Xen's 17.127 -internal scheduler API. For production systems, one of the other 17.128 -schedulers should be used, since they are more flexible and more 17.129 -efficient. 17.130 - 17.131 -The Round-robin scheduler has one global parameter (set using 17.132 -xc_dom_control.py cpu_rrobin_slice): 17.133 - 17.134 - * rr_slice - The time for which each domain runs before the next 17.135 - scheduling decision is made. 17.136 - 17.137 -The Round-Robin scheduler can be selected by adding 'sched=rrobin' to 17.138 -Xen's boot-time arguments.
18.1 --- a/docs/HOWTOs/VBD-HOWTO Fri Aug 06 12:20:20 2004 +0000 18.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 18.3 @@ -1,437 +0,0 @@ 18.4 -Virtual Block Devices / Virtual Disks in Xen - HOWTO 18.5 -==================================================== 18.6 - 18.7 -HOWTO for Xen 1.2 18.8 - 18.9 -Mark A. Williamson (mark.a.williamson@intel.com) 18.10 -(C) Intel Research Cambridge 2004 18.11 - 18.12 -Introduction 18.13 ------------- 18.14 - 18.15 -This document describes the new Virtual Block Device (VBD) and Virtual Disk 18.16 -features available in Xen release 1.2. First, a brief introduction to some 18.17 -basic disk concepts on a Xen system: 18.18 - 18.19 -Virtual Block Devices (VBDs): 18.20 - VBDs are the disk abstraction provided by Xen. All XenoLinux disk accesses 18.21 - go through the VBD driver. Using the VBD functionality, it is possible 18.22 - to selectively grant domains access to portions of the physical disks 18.23 - in the system. 18.24 - 18.25 - A virtual block device can also consist of multiple extents from the 18.26 - physical disks in the system, allowing them to be accessed as a single 18.27 - uniform device from the domain with access to that VBD. The 18.28 - functionality is somewhat similar to that underpinning LVM, since 18.29 - you can combine multiple regions from physical devices into a single 18.30 - logical device, from the point of view of a guest virtual machine. 18.31 - 18.32 - Everyone who boots Xen / XenoLinux from a hard drive uses VBDs 18.33 - but for some uses they can almost be ignored. 18.34 - 18.35 -Virtual Disks (VDs): 18.36 - VDs are an abstraction built on top of the functionality provided by 18.37 - VBDs. The VD management code maintains a "free pool" of disk space on 18.38 - the system that has been reserved for use with VDs. The tools can 18.39 - automatically allocate collections of extents from this free pool to 18.40 - create "virtual disks" on demand. 18.41 - 18.42 - VDs can then be used just like normal disks by domains. VDs appear 18.43 - just like any other disk to guest domains, since they use the same VBD 18.44 - abstraction, as provided by Xen. 18.45 - 18.46 - Using VDs is optional, since it's always possible to dedicate 18.47 - partitions, or entire disks to your virtual machines. VDs are handy 18.48 - when you have a dynamically changing set of virtual machines and you 18.49 - don't want to have to keep repartitioning in order to provide them with 18.50 - disk space. 18.51 - 18.52 - Virtual Disks are rather like "logical volumes" in LVM. 18.53 - 18.54 -If that didn't all make sense, it doesn't matter too much ;-) Using the 18.55 -functionality is fairly straightforward and some examples will clarify things. 18.56 -The text below expands a bit on the concepts involved, finishing up with a 18.57 -walk-through of some simple virtual disk management tasks. 18.58 - 18.59 - 18.60 -Virtual Block Devices 18.61 ---------------------- 18.62 - 18.63 -Before covering VD management, it's worth discussing some aspects of the VBD 18.64 -functionality that will be useful to know. 18.65 - 18.66 -A VBD is made up of a number of extents from physical disk devices. The 18.67 -extents for a VBD don't have to be contiguous, or even on the same device. Xen 18.68 -performs address translation so that they appear as a single contiguous 18.69 -device to a domain. 18.70 - 18.71 -When the VBD layer is used to give access to entire drives or entire 18.72 -partitions, the VBDs simply consist of a single extent that corresponds to the 18.73 -drive or partition used. Lists of extents are usually only used when virtual 18.74 -disks (VDs) are being used. 18.75 - 18.76 -Xen 1.2 and its associated XenoLinux release support automatic registration / 18.77 -removal of VBDs. It has always been possible to add a VBD to a running 18.78 -XenoLinux domain but it was then necessary to run the "xen_vbd_refresh" tool in 18.79 -order for the new device to be detected. Nowadays, when a VBD is added, the 18.80 -domain it's added to automatically registers the disk, with no special action 18.81 -by the user being required. 18.82 - 18.83 -Note that it is possible to use the VBD functionality to allow multiple domains 18.84 -write access to the same areas of disk. This is almost always a bad thing! 18.85 -The provided example scripts for creating domains do their best to check that 18.86 -disk areas are not shared unsafely and will catch many cases of this. Setting 18.87 -the vbd_expert variable in config files for xc_dom_create.py controls how 18.88 -unsafe it allows VBD mappings to be - 0 (read only sharing allowed) should be 18.89 -right for most people ;-). Level 1 attempts to allow at most one writer to any 18.90 -area of disk. Level 2 allows multiple writers (i.e. anything!). 18.91 - 18.92 - 18.93 -Virtual Disk Management 18.94 ------------------------ 18.95 - 18.96 -The VD management code runs entirely in user space. The code is written in 18.97 -Python and can therefore be accessed from custom scripts, as well as from the 18.98 -convenience scripts provided. The underlying VD database is a SQLite database 18.99 -in /var/db/xen_vdisks.sqlite. 18.100 - 18.101 -Most virtual disk management can be performed using the xc_vd_tool.py script 18.102 -provided in the tools/examples/ directory of the source tree. It supports the 18.103 -following operations: 18.104 - 18.105 -initialise - "Formats" a partition or disk device for use storing 18.106 - virtual disks. This does not actually write data to the 18.107 - specified device. Rather, it adds the device to the VD 18.108 - free-space pool, for later allocation. 18.109 - 18.110 - You should only add devices that correspond directly to 18.111 - physical disks / partitions - trying to use a VBD that you 18.112 - have created yourself as part of the free space pool has 18.113 - undefined (possibly nasty) results. 18.114 - 18.115 -create - Creates a virtual disk of specified size by allocating space 18.116 - from the free space pool. The virtual disk is identified 18.117 - in future by the unique ID returned by this script. 18.118 - 18.119 - The disk can be given an expiry time, if desired. For 18.120 - most users, the best idea is to specify a time of 0 (which 18.121 - has the special meaning "never expire") and then 18.122 - explicitly delete the VD when finished with it - 18.123 - otherwise, VDs will disappear if allowed to expire. 18.124 - 18.125 -delete - Explicitly delete a VD. Makes it disappear immediately! 18.126 - 18.127 -setexpiry - Allows the expiry time of a (not yet expired) virtual disk 18.128 - to be modified. Be aware the VD will disappear when the 18.129 - time has expired. 18.130 - 18.131 -enlarge - Increase the allocation of space to a virtual disk. 18.132 - Currently this will not be immediately visible to running 18.133 - domain(s) using it. You can make it visible by destroying 18.134 - the corresponding VBDs and then using xc_dom_control.py to 18.135 - add them to the domain again. Note: doing this to 18.136 - filesystems that are in use may well cause errors in the 18.137 - guest Linux, or even a crash although it will probably be 18.138 - OK if you stop the domain before updating the VBD and 18.139 - restart afterwards. 18.140 - 18.141 -import - Allocate a virtual disk and populate it with the contents of 18.142 - some disk file. This can be used to import root file system 18.143 - images or to restore backups of virtual disks, for instance. 18.144 - 18.145 -export - Write the contents of a virtual disk out to a disk file. 18.146 - Useful for creating disk images for use elsewhere, such as 18.147 - standard root file systems and backups. 18.148 - 18.149 -list - List the non-expired virtual disks currently available in the 18.150 - system. 18.151 - 18.152 -undelete - Attempts to recover an expired (or deleted) virtual disk. 18.153 - 18.154 -freespace - Get the free space (in megabytes) available for allocating 18.155 - new virtual disk extents. 18.156 - 18.157 -The functionality provided by these scripts is also available directly from 18.158 -Python functions in the xenctl.utils module - you can use this functionality in 18.159 -your own scripts. 18.160 - 18.161 -Populating VDs: 18.162 - 18.163 -Once you've created a VD, you might want to populate it from DOM0 (for 18.164 -instance, to put a root file system onto it for a guest domain). This can be 18.165 -done by creating a VBD for dom0 to access the VD through - this is discussed 18.166 -below. 18.167 - 18.168 -More detail on how virtual disks work: 18.169 - 18.170 -When you "format" a device for virtual disks, the device is logically split up 18.171 -into extents. These extents are recorded in the Virtual Disk Management 18.172 -database in /var/db/xen_vdisks.sqlite. 18.173 - 18.174 -When you use xc_vd_tool.py to add create a virtual disk, some of the extents in 18.175 -the free space pool are reallocated for that virtual disk and a record for that 18.176 -VD is added to the database. When VDs are mapped into domains as VBDs, the 18.177 -system looks up the allocated extents for the virtual disk in order to set up 18.178 -the underlying VBD. 18.179 - 18.180 -Free space is identified by the fact that it belongs to an "expired" disk. 18.181 -When "initialising" with xc_vd_tool.py adds a real device to the free pool, it 18.182 -actually divides the device into extents and adds them to an already-expired 18.183 -virtual disk. The allocated device is not written to during this operation - 18.184 -its availability is simply recorded into the virtual disks database. 18.185 - 18.186 -If you set an expiry time on a VD, its extents will be liable to be reallocated 18.187 -to new VDs as soon as that expiry time runs out. Therefore, be careful when 18.188 -setting expiry times! Many users will find it simplest to set all VDs to not 18.189 -expire automatically, then explicitly delete them later on. 18.190 - 18.191 -Deleted / expired virtual disks may sometimes be undeleted - currently this 18.192 -only works when none of the virtual disk's extents have been reallocated to 18.193 -other virtual disks, since that's the only situation where the disk is likely 18.194 -to be fully intact. You should try undeletion as soon as you realise you've 18.195 -mistakenly deleted (or allowed to expire) a virtual disk. At some point in the 18.196 -future, an "unsafe" undelete which can recover what remains of partially 18.197 -reallocated virtual disks may also be implemented. 18.198 - 18.199 -Security note: 18.200 - 18.201 -The disk space for VDs is not zeroed when it is initially added to the free 18.202 -space pool OR when a VD expires OR when a VD is created. Therefore, if this is 18.203 -not done manually it is possible for a domain to read a VD to determine what 18.204 -was written by previous owners of its constituent extents. If this is a 18.205 -problem, users should manually clean VDs in some way either on allocation, or 18.206 -just before deallocation (automated support for this may be added at a later 18.207 -date). 18.208 - 18.209 - 18.210 -Side note: The xvd* devices 18.211 ---------------------------- 18.212 - 18.213 -The examples in this document make frequent use of the xvd* device nodes for 18.214 -representing virtual block devices. It is not a requirement to use these with 18.215 -Xen, since VBDs can be mapped to any IDE or SCSI device node in the system. 18.216 -Changing the the references to xvd* nodes in the examples below to refer to 18.217 -some unused hd* or sd* node would also be valid. 18.218 - 18.219 -They can be useful when accessing VBDs from dom0, since binding VBDs to xvd* 18.220 -devices under will avoid clashes with real IDE or SCSI drives. 18.221 - 18.222 -There is a shell script provided in tools/misc/xen-mkdevnodes to create these 18.223 -nodes. Specify on the command line the directory that the nodes should be 18.224 -placed under (e.g. /dev): 18.225 - 18.226 -> cd {root of Xen source tree}/tools/misc/ 18.227 -> ./xen-mkdevnodes /dev 18.228 - 18.229 - 18.230 -Dynamically Registering VBDs 18.231 ----------------------------- 18.232 - 18.233 -The domain control tool (xc_dom_control.py) includes the ability to add and 18.234 -remove VBDs to / from running domains. As usual, the command format is: 18.235 - 18.236 -xc_dom_control.py [operation] [arguments] 18.237 - 18.238 -The operations (and their arguments) are as follows: 18.239 - 18.240 -vbd_add dom uname dev mode - Creates a VBD corresponding to either a physical 18.241 - device or a virtual disk and adds it as a 18.242 - specified device under the target domain, with 18.243 - either read or write access. 18.244 - 18.245 -vbd_remove dom dev - Removes the VBD associated with a specified device 18.246 - node from the target domain. 18.247 - 18.248 -These scripts are most useful when populating VDs. VDs can't be populated 18.249 -directly, since they don't correspond to real devices. Using: 18.250 - 18.251 - xc_dom_control.py vbd_add 0 vd:your_vd_id /dev/whatever w 18.252 - 18.253 -You can make a virtual disk available to DOM0. Sensible devices to map VDs to 18.254 -in DOM0 are the /dev/xvd* nodes, since that makes it obvious that they are Xen 18.255 -virtual devices that don't correspond to real physical devices. 18.256 - 18.257 -You can then format, mount and populate the VD through the nominated device 18.258 -node. When you've finished, use: 18.259 - 18.260 - xc_dom_control.py vbd_remove 0 /dev/whatever 18.261 - 18.262 -To revoke DOM0's access to it. It's then ready for use in a guest domain. 18.263 - 18.264 - 18.265 - 18.266 -You can also use this functionality to grant access to a physical device to a 18.267 -guest domain - you might use this to temporarily share a partition, or to add 18.268 -access to a partition that wasn't granted at boot time. 18.269 - 18.270 -When playing with VBDs, remember that in general, it is only safe for two 18.271 -domains to have access to a file system if they both have read-only access. You 18.272 -shouldn't be trying to share anything which is writable, even if only by one 18.273 -domain, unless you're really sure you know what you're doing! 18.274 - 18.275 - 18.276 -Granting access to real disks and partitions 18.277 --------------------------------------------- 18.278 - 18.279 -During the boot process, Xen automatically creates a VBD for each physical disk 18.280 -and gives Dom0 read / write access to it. This makes it look like Dom0 has 18.281 -normal access to the disks, just as if Xen wasn't being used - in reality, even 18.282 -Dom0 talks to disks through Xen VBDs. 18.283 - 18.284 -To give another domain access to a partition or whole disk then you need to 18.285 -create a corresponding VBD for that partition, for use by that domain. As for 18.286 -virtual disks, you can grant access to a running domain, or specify that the 18.287 -domain should have access when it is first booted. 18.288 - 18.289 -To grant access to a physical partition or disk whilst a domain is running, use 18.290 -the xc_dom_control.py script - the usage is very similar to the case of adding 18.291 -access virtual disks to a running domain (described above). Specify the device 18.292 -as "phy:device", where device is the name of the device as seen from domain 0, 18.293 -or from normal Linux without Xen. For instance: 18.294 - 18.295 -> xc_dom_control.py vbd_add 2 phy:hdc /dev/whatever r 18.296 - 18.297 -Will grant domain 2 read-only access to the device /dev/hdc (as seen from Dom0 18.298 -/ normal Linux running on the same machine - i.e. the master drive on the 18.299 -secondary IDE chain), as /dev/whatever in the target domain. 18.300 - 18.301 -Note that you can use this within domain 0 to map disks / partitions to other 18.302 -device nodes within domain 0. For instance, you could map /dev/hda to also be 18.303 -accessible through /dev/xvda. This is not generally recommended, since if you 18.304 -(for instance) mount both device nodes read / write you could cause corruption 18.305 -to the underlying filesystem. It's also quite confusing ;-) 18.306 - 18.307 -To grant a domain access to a partition or disk when it boots, the appropriate 18.308 -VBD needs to be created before the domain is started. This can be done very 18.309 -easily using the tools provided. To specify this to the xc_dom_create.py tool 18.310 -(either in a startup script or on the command line) use triples of the format: 18.311 - 18.312 - phy:dev,target_dev,perms 18.313 - 18.314 -Where dev is the device name as seen from Dom0, target_dev is the device you 18.315 -want it to appear as in the target domain and perms is 'w' if you want to give 18.316 -write privileges, or 'r' otherwise. 18.317 - 18.318 -These may either be specified on the command line or in an initialisation 18.319 -script. For instance, to grant the same access rights as described by the 18.320 -command example above, you would use the triple: 18.321 - 18.322 - phy:hdc,/dev/whatever,r 18.323 - 18.324 -If you are using a config file, then you should add this triple into the 18.325 -vbd_list variable, for instance using the line: 18.326 - 18.327 - vbd_list = [ ('phy:dev', 'hdc', 'r') ] 18.328 - 18.329 -(Note that you need to use quotes here, since config files are really small 18.330 -Python scripts.) 18.331 - 18.332 -To specify the mapping on the command line, you'd use the -d switch and supply 18.333 -the triple as the argument, e.g.: 18.334 - 18.335 -> xc_dom_create.py [other arguments] -d phy:hdc,/dev/whatever,r 18.336 - 18.337 -(You don't need to explicitly quote things in this case.) 18.338 - 18.339 - 18.340 -Walk-through: Booting a domain from a VD 18.341 ----------------------------------------- 18.342 - 18.343 -As an example, here is a sequence of commands you might use to create a virtual 18.344 -disk, populate it with a root file system and boot a domain from it. These 18.345 -steps assume that you've installed the example scripts somewhere on your PATH - 18.346 -if you haven't done that, you'll need to specify a fully qualified pathname in 18.347 -the examples below. It is also assumed that you know how to use the 18.348 -xc_dom_create.py tool (apart from configuring virtual disks!) 18.349 - 18.350 -[ This example is intended only for users of virtual disks (VDs). You don't 18.351 -need to follow this example if you'll be booting a domain from a dedicated 18.352 -partition, since you can create that partition and populate it, directly from 18.353 -Dom0, as normal. ] 18.354 - 18.355 -First, if you haven't done so already, you'll initialise the free space pool by 18.356 -adding a real partition to it. The details are stored in the database, so 18.357 -you'll only need to do it once. You can also use this command to add further 18.358 -partitions to the existing free space pool. 18.359 - 18.360 -> xc_vd_tool.py format /dev/<real partition> 18.361 - 18.362 -Now you'll want to allocate the space for your virtual disk. Do so using the 18.363 -following, specifying the size in megabytes. 18.364 - 18.365 -> xc_vd_tool.py create <size in megabytes> 18.366 - 18.367 -At this point, the program will tell you the virtual disk ID. Note it down, as 18.368 -it is how you will identify the virtual device in future. 18.369 - 18.370 -If you don't want the VD to be bootable (i.e. you're booting a domain from some 18.371 -other medium and just want it to be able to access this VD), you can simply add 18.372 -it to the vbd_list used by xc_dom_create.py, either by putting it in a config 18.373 -file or by specifying it on the command line. Formatting / populating of the 18.374 -VD could then done from that domain once it's started. 18.375 - 18.376 -If you want to boot off your new VD as well then you need to populate it with a 18.377 -standard Linux root filesystem. You'll need to temporarily add the VD to DOM0 18.378 -in order to do this. To give DOM0 r/w access to the VD, use the following 18.379 -command line, substituting the ID you got earlier. 18.380 - 18.381 -> xc_dom_control.py vbd_add 0 vd:<id> /dev/xvda w 18.382 - 18.383 -This attaches the VD to the device /dev/xvda in domain zero, with read / write 18.384 -privileges - you can use other devices nodes if you choose too. 18.385 - 18.386 -Now make a filesystem on this device, mount it and populate it with a root 18.387 -filesystem. These steps are exactly the same as under normal Linux. When 18.388 -you've finished, unmount the filesystem again. 18.389 - 18.390 -You should now remove the VD from DOM0. This will prevent you accidentally 18.391 -changing it in DOM0, whilst the guest domain is using it (which could cause 18.392 -filesystem corruption, and confuse Linux). 18.393 - 18.394 -> xc_dom_control.py vbd_remove 0 /dev/xvda 18.395 - 18.396 -It should now be possible to boot a guest domain from the VD. To do this, you 18.397 -should specify the the VD's details in some way so that xc_dom_create.py will 18.398 -be able to set up the corresponding VBD for the domain to access. If you're 18.399 -using a config file, you should include: 18.400 - 18.401 - ('vd:<id>', '/dev/whatever', 'w') 18.402 - 18.403 -In the vbd_list, substituting the appropriate virtual disk ID, device node and 18.404 -read / write setting. 18.405 - 18.406 -To specify access on the command line, as you start the domain, you would use 18.407 -the -d switch (note that you don't need to use quote marks here): 18.408 - 18.409 -> xc_dom_create.py [other arguments] -d vd:<id>,/dev/whatever,w 18.410 - 18.411 -To tell Linux which device to boot from, you should either include: 18.412 - 18.413 - root=/dev/whatever 18.414 - 18.415 -in your cmdline_root in the config file, or specify it on the command line, 18.416 -using the -R option: 18.417 - 18.418 -> xc_dom_create.py [other arguments] -R root=/dev/whatever 18.419 - 18.420 -That should be it: sit back watch your domain boot off its virtual disk! 18.421 - 18.422 - 18.423 -Getting help 18.424 ------------- 18.425 - 18.426 -The main source of help using Xen is the developer's e-mail list: 18.427 -<xen-devel@lists.sourceforge.net>. The developers will help with problems, 18.428 -listen to feature requests and do bug fixes. It is, however, helpful if you 18.429 -can look through the mailing list archives and HOWTOs provided to make sure 18.430 -your question is not answered there. If you post to the list, please provide 18.431 -as much information as possible about your setup and your problem. 18.432 - 18.433 -There is also a general Xen FAQ, kindly started by Jan van Rensburg, which (at 18.434 -time of writing) is located at: <http://xen.epiuse.com/xen-faq.txt>. 18.435 - 18.436 -Contributing 18.437 ------------- 18.438 - 18.439 -Patches and extra documentation are also welcomed ;-) and should also be posted 18.440 -to the xen-devel e-mail list.
19.1 --- a/docs/HOWTOs/Xen-HOWTO Fri Aug 06 12:20:20 2004 +0000 19.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 19.3 @@ -1,416 +0,0 @@ 19.4 -########################################### 19.5 -Xen HOWTO 19.6 - 19.7 -University of Cambridge Computer Laboratory 19.8 - 19.9 -http://www.cl.cam.ac.uk/netos/xen 19.10 -############################# 19.11 - 19.12 - 19.13 -Get Xen Source Code 19.14 -============================= 19.15 - 19.16 -The public master BK repository for the 1.2 release lives at: 19.17 -'bk://xen.bkbits.net/xeno-1.2.bk' 19.18 -The current unstable release (1.3) is available at: 19.19 -'bk://xen.bkbits.net/xeno-unstable.bk' 19.20 - 19.21 -To fetch a local copy, first download the BitKeeper tools at: 19.22 -http://www.bitmover.com/download with username 'bitkeeper' and 19.23 -password 'get bitkeeper'. 19.24 - 19.25 -Then install the tools and then run: 19.26 -# bk clone bk://xen.bkbits.net/xeno-1.2.bk 19.27 - 19.28 -Under your current directory, a new directory named 'xeno-1.2.bk' has 19.29 -been created, which contains all the necessary source codes for the 19.30 -Xen hypervisor and Linux guest OSes. 19.31 - 19.32 -To get newest changes to the repository, run 19.33 -# cd xeno-1.2.bk 19.34 -# bk pull 19.35 - 19.36 - 19.37 -Configuring Xen 19.38 -============================= 19.39 - 19.40 -Xen's build configuration is managed via a set of environment 19.41 -variables. These should be set before invoking make 19.42 -(e.g., 'export debug=y; make', 'debug=y make'). 19.43 - 19.44 -The options that can be configured are as follows (all options default 19.45 -to 'n' or off): 19.46 - 19.47 - debug=y -- Enable debug assertions and console output. 19.48 - (Primarily useful for tracing bugs in Xen). 19.49 - 19.50 - debugger=y -- Enable the in-Xen pervasive debugger (PDB). 19.51 - This can be used to debug Xen, guest OSes, and 19.52 - applications. For more information see the 19.53 - XenDebugger-HOWTO. 19.54 - 19.55 - perfc=y -- Enable performance-counters for significant events 19.56 - within Xen. The counts can be reset or displayed 19.57 - on Xen's console via console control keys. 19.58 - 19.59 - trace=y -- Enable per-cpu trace buffers which log a range of 19.60 - events within Xen for collection by control 19.61 - software. 19.62 - 19.63 - 19.64 -Build Xen 19.65 -============================= 19.66 - 19.67 -Hint: To see how to build Xen and all the control tools, inspect the 19.68 -tools/misc/xen-clone script in the BK repository. This script can be 19.69 -used to clone the repository and perform a full build. 19.70 - 19.71 -To build Xen manually: 19.72 - 19.73 -# cd xeno-1.2.bk/xen 19.74 -# make clean 19.75 -# make 19.76 - 19.77 -This will (should) produce a file called 'xen' in the current 19.78 -directory. This is the ELF 32-bit LSB executable file of Xen. You 19.79 -can also find a gzip version, named 'xen.gz'. 19.80 - 19.81 -To install the built files on your server under /usr, type 'make 19.82 -install' at the root of the BK repository. You will need to be root to 19.83 -do this! 19.84 - 19.85 -Hint: There is also a 'make dist' rule which copies built files to an 19.86 -install directory just outside the BK repo; if this suits your setup, 19.87 -go for it. 19.88 - 19.89 - 19.90 -Build Linux as a Xen guest OS 19.91 -============================== 19.92 - 19.93 -This is a little more involved since the repository only contains a 19.94 -"sparse" tree -- this is essentially an 'overlay' on a standard linux 19.95 -kernel source tree. It contains only those files currently 'in play' 19.96 -which are either modified versions of files in the vanilla linux tree, 19.97 -or brand new files specific to the Xen port. 19.98 - 19.99 -So, first you need a vanilla linux-2.4.26 tree, which is located at: 19.100 -http://www.kernel.org/pub/linux/kernel/v2.4 19.101 - 19.102 -Then: 19.103 - # mv linux-2.4.26.tar.gz /xeno-1.2.bk 19.104 - # cd /xeno-1.2.bk 19.105 - # tar -zxvf linux-2.4.26.tar.gz 19.106 - 19.107 -You'll find a new directory 'linux-2.4.26' which contains all 19.108 -the vanilla Linux 2.4.26 kernel source codes. 19.109 - 19.110 -Hint: You should choose the vanilla linux kernel tree that has the 19.111 -same version as the "sparse" tree. 19.112 - 19.113 -Next, you need to 'overlay' this sparse tree on the full vanilla Linux 19.114 -kernel tree: 19.115 - 19.116 - # cd /xeno-1.2.bk/xenolinux-2.4.26-sparse 19.117 - # ./mkbuildtree ../linux-2.4.26 19.118 - 19.119 -Finally, rename the buildtree since it is now a 'xenolinux' buildtree. 19.120 - 19.121 - # cd /xeno-1.2.bk 19.122 - # mv linux-2.4.26 xenolinux-2.4.26 19.123 - 19.124 -Now that the buildtree is there, you can build the xenolinux kernel. 19.125 -The default configuration should work fine for most people (use 'make 19.126 -oldconfig') but you can customise using one of the other config tools 19.127 -if you want. 19.128 - 19.129 - # cd /xeno-1.2.bk/xenolinux-2.4.26 19.130 - # ARCH=xen make oldconfig { or menuconfig, or xconfig, or config } 19.131 - # ARCH=xen make dep 19.132 - # ARCH=xen make bzImage 19.133 - 19.134 -Assuming the build works, you'll end up with 19.135 -/xeno-1.2.bk/xenolinux-2.4.26/arch/xen/boot/xenolinux.gz. This is the 19.136 -gzip version of XenoLinux kernel image. 19.137 - 19.138 - 19.139 -Build the Domain Control Tools 19.140 -============================== 19.141 - 19.142 -Under '/xeno-1.2.bk/tools', there are three sub-directories: 19.143 -'balloon', 'xc' and 'misc', each containing 19.144 -a group of tools. You can enter any of the four sub-directories 19.145 -and type 'make' to compile the corresponding group of tools. 19.146 -Or you can type 'make' under '/xeno-1.2.bk/tools' to compile 19.147 -all the tools. 19.148 - 19.149 -In order to compile the control-interface library in 'xc' you must 19.150 -have zlib and development headers installed. Also you will need at 19.151 -least Python v2.2. 19.152 - 19.153 -'make install' in the tools directory will place executables and 19.154 -libraries in /usr/bin and /usr/lib. You will need to be root to do this! 19.155 - 19.156 -As noted earlier, 'make dist' installs files to a local 'install' 19.157 -directory just outside the BK repository. These files will then need 19.158 -to be installed manually onto the server. 19.159 - 19.160 -The Example Scripts 19.161 -=================== 19.162 - 19.163 -The scripts in tools/examples/ are generally useful for 19.164 -administering a Xen-based system. You can install them by running 19.165 -'make install' in that directory. 19.166 - 19.167 -The python scripts (*.py) are the main tools for controlling 19.168 -Xen domains. 19.169 - 19.170 -'defaults' and 'democd' are example configuration files for starting 19.171 -new domains. 19.172 - 19.173 -'xendomains' is a Sys-V style init script for starting and stopping 19.174 -Xen domains when the system boots / shuts down. 19.175 - 19.176 -These will be discussed below in more detail. 19.177 - 19.178 - 19.179 -Installation 19.180 -============================== 19.181 - 19.182 -First: 19.183 -# cp /xen-1.2.bk/xen/xen.gz /boot/xen.gz 19.184 -# cp /xen-1.2.bk/xenolinux-2.4.26/arch/xen/boot/xenolinux.gz /boot/xenolinux.gz 19.185 - 19.186 -Second, you must have 'GNU Grub' installed. Then you need to edit 19.187 -the Grub configuration file '/boot/grub/menu.lst'. 19.188 - 19.189 -A typical Grub menu option might look like: 19.190 - 19.191 -title Xen 1.2 / XenoLinux 2.4.26 19.192 - kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1 noht 19.193 - module /boot/xenolinux.gz root=/dev/sda4 ro console=tty0 19.194 - 19.195 -The first line specifies which Xen image to use, and what command line 19.196 -arguments to pass to Xen. In this case we set the maximum amount of 19.197 -memory to allocate to domain0, and enable serial I/O at 115200 baud. 19.198 -We could also disable smp support (nosmp) or disable hyper-threading 19.199 -support (noht). If you have multiple network interface you can use 19.200 -ifname=ethXX to select which one to use. If your network card is 19.201 -unsupported, use ifname=dummy 19.202 - 19.203 -The second line specifies which XenoLinux image to use, and the 19.204 -standard linux command line arguments to pass to the kernel. In this 19.205 -case, we're configuring the root partition and stating that it should 19.206 -(initially) be mounted read-only (normal practice). 19.207 - 19.208 -The following is a list of command line arguments to pass to Xen: 19.209 - 19.210 - ignorebiostables Disable parsing of BIOS-supplied tables. This may 19.211 - help with some chipsets that aren't fully supported 19.212 - by Xen. If you specify this option then ACPI tables are 19.213 - also ignored, and SMP support is disabled. 19.214 - 19.215 - noreboot Don't reboot the machine automatically on errors. 19.216 - This is useful to catch debug output if you aren't 19.217 - catching console messages via the serial line. 19.218 - 19.219 - nosmp Disable SMP support. 19.220 - This option is implied by 'ignorebiostables'. 19.221 - 19.222 - noacpi Disable ACPI tables, which confuse Xen on some chipsets. 19.223 - This option is implied by 'ignorebiostables'. 19.224 - 19.225 - watchdog Enable NMI watchdog which can report certain failures. 19.226 - 19.227 - noht Disable Hyperthreading. 19.228 - 19.229 - badpage=<page number>[,<page number>]* 19.230 - Specify a list of pages not to be allocated for use 19.231 - because they contain bad bytes. For example, if your 19.232 - memory tester says that byte 0x12345678 is bad, you would 19.233 - place 'badpage=0x12345' on Xen's command line (i.e., the 19.234 - last three digits of the byte address are not included!). 19.235 - 19.236 - com1=<baud>,DPS[,<io_base>,<irq>] 19.237 - com2=<baud>,DPS[,<io_base>,<irq>] 19.238 - Xen supports up to two 16550-compatible serial ports. 19.239 - For example: 'com1=9600,8n1,0x408,5' maps COM1 to a 19.240 - 9600-baud port, 8 data bits, no parity, 1 stop bit, 19.241 - I/O port base 0x408, IRQ 5. 19.242 - If the I/O base and IRQ are standard (com1:0x3f8,4; 19.243 - com2:0x2f8,3) then they need not be specified. 19.244 - 19.245 - console=<specifier list> 19.246 - Specify the destination for Xen console I/O. 19.247 - This is a comma-separated list of, for example: 19.248 - vga: use VGA console and allow keyboard input 19.249 - com1: use serial port com1 19.250 - com2H: use serial port com2. Transmitted chars will 19.251 - have the MSB set. Received chars must have 19.252 - MSB set. 19.253 - com2L: use serial port com2. Transmitted chars will 19.254 - have the MSB cleared. Received chars must 19.255 - have MSB cleared. 19.256 - The latter two examples allow a single port to be 19.257 - shared by two subsystems (eg. console and 19.258 - debugger). Sharing is controlled by MSB of each 19.259 - transmitted/received character. 19.260 - [NB. Default for this option is 'com1,vga'] 19.261 - 19.262 - conswitch=<switch-char><auto-switch-char> 19.263 - Specify how to switch serial-console input between 19.264 - Xen and DOM0. The required sequence is CTRL-<switch_char> 19.265 - pressed three times. Specifying '`' disables switching. 19.266 - The <auto-switch-char> specifies whether Xen should 19.267 - auto-switch input to DOM0 when it boots -- if it is 'x' 19.268 - then auto-switching is disabled. Any other value, or 19.269 - omitting the character, enables auto-switching. 19.270 - [NB. Default for this option is 'a'] 19.271 - 19.272 - nmi=<nmi-error-behaviour> 19.273 - Specify what to do with an NMI parity or I/O error. 19.274 - 'nmi=fatal': Xen prints a diagnostic and then hangs. 19.275 - 'nmi=dom0': Inform DOM0 of the NMI. 19.276 - 'nmi=ignore': Ignore the NMI. 19.277 - [NB. Default is 'dom0' ('fatal' for debug builds).] 19.278 - 19.279 - dom0_mem=xxx Set the maximum amount of memory for domain0. 19.280 - 19.281 - tbuf_size=xxx Set the size of the per-cpu trace buffers, in pages 19.282 - (default 1). Note that the trace buffers are only 19.283 - enabled in debug builds. Most users can ignore 19.284 - this feature completely. 19.285 - 19.286 - sched=xxx Select the CPU scheduler Xen should use. The current 19.287 - possibilities are 'bvt', 'atropos' and 'rrobin'. The 19.288 - default is 'bvt'. For more information see 19.289 - Sched-HOWTO.txt. 19.290 - 19.291 -Boot into Domain 0 19.292 -============================== 19.293 - 19.294 -Reboot your computer; After selecting the kernel to boot, stand back 19.295 -and watch Xen boot, closely followed by "domain 0" running the 19.296 -XenoLinux kernel. Depending on which root partition you have assigned 19.297 -to XenoLinux kernel in Grub configuration file, you can use the 19.298 -corresponding username / password to log in. 19.299 - 19.300 -Once logged in, it should look just like any regular linux box. All 19.301 -the usual tools and commands should work as per usual. 19.302 - 19.303 - 19.304 -Start New Domains 19.305 -============================== 19.306 - 19.307 -You must be 'root' to start new domains. 19.308 - 19.309 -Make sure you have successfully configured at least one 19.310 -physical network interface. Then: 19.311 - 19.312 -# xen_nat_enable 19.313 - 19.314 -The xc_dom_create.py program is useful for starting Xen domains. 19.315 -You can specify configuration files using the -f switch on the command 19.316 -line. The default configuration is in /etc/xc/defaults. You can 19.317 -create custom versions of this to suit your local configuration. 19.318 - 19.319 -You can override the settings in a configuration file using command 19.320 -line arguments to xc_dom_create.py. However, you may find it simplest 19.321 -to create a separate configuration file for each domain you start. 19.322 - 19.323 -xc_dom_create.py will print the local TCP port to which you should 19.324 -connect to perform console I/O. A suitable console client is provided 19.325 -by the Python module xenctl.console_client: running this module from 19.326 -the command line with <host> and <port> parameters will start a 19.327 -terminal session. This module is also installed as /usr/bin/xencons, 19.328 -from a copy in tools/misc/xencons. An alternative to manually running 19.329 -a terminal client is to specify '-c' to xc_dom_create.py, or add 19.330 -'auto_console=True' to the defaults file. This will cause 19.331 -xc_dom_create.py to automatically become the console terminal after 19.332 -starting the domain. 19.333 - 19.334 -Boot-time output will be directed to this console by default, because 19.335 -the console name is tty0. It is also possible to log in via the 19.336 -virtual console --- once again, your normal startup scripts will work 19.337 -as normal (e.g., by running mingetty on tty1-7). The device node to 19.338 -which the virtual console is attached can be configured by specifying 19.339 -'xencons=' on the OS command line: 19.340 - 'xencons=off' --> disable virtual console 19.341 - 'xencons=tty' --> attach console to /dev/tty1 (tty0 at boot-time) 19.342 - 'xencons=ttyS' --> attach console to /dev/ttyS0 19.343 - 19.344 - 19.345 -Manage Running Domains 19.346 -============================== 19.347 - 19.348 -You can see a list of existing domains with: 19.349 -# xc_dom_control.py list 19.350 - 19.351 -In order to stop a domain, you use: 19.352 -# xc_dom_control.py stop <domain_id> 19.353 - 19.354 -To shutdown a domain cleanly use: 19.355 -# xc_dom_control.py shutdown <domain_id> 19.356 - 19.357 -To destroy a domain immediately: 19.358 -# xc_dom_control.py destroy <domain_id> 19.359 - 19.360 -There are other more advanced options, including pinning domains to 19.361 -specific CPUs and saving / resuming domains to / from disk files. To 19.362 -get more information, run the tool without any arguments: 19.363 -# xc_dom_control.py 19.364 - 19.365 -There is more information available in the Xen README files, the 19.366 -VBD-HOWTO and the contributed FAQ / HOWTO documents on the web. 19.367 - 19.368 - 19.369 -Other Control Tasks using Python 19.370 -================================ 19.371 - 19.372 -A Python module 'Xc' is installed as part of the tools-install 19.373 -process. This can be imported, and an 'xc object' instantiated, to 19.374 -provide access to privileged command operations: 19.375 - 19.376 -# import Xc 19.377 -# xc = Xc.new() 19.378 -# dir(xc) 19.379 -# help(xc.domain_create) 19.380 - 19.381 -In this way you can see that the class 'xc' contains useful 19.382 -documentation for you to consult. 19.383 - 19.384 -A further package of useful routines (xenctl) is also installed: 19.385 - 19.386 -# import xenctl.utils 19.387 -# help(xenctl.utils) 19.388 - 19.389 -You can use these modules to write your own custom scripts or you can 19.390 -customise the scripts supplied in the Xen distribution. 19.391 - 19.392 - 19.393 -Automatically start / stop domains at boot / shutdown 19.394 -===================================================== 19.395 - 19.396 -A Sys-V style init script for RedHat systems is provided in 19.397 -tools/examples/xendomains. When you run 'make install' in that 19.398 -directory, it should be automatically copied to /etc/init.d/. You can 19.399 -then enable it using the chkconfig command, e.g.: 19.400 - 19.401 -# chkconfig --add xendomains 19.402 - 19.403 -By default, this will start the boot-time domains in runlevels 3, 4 19.404 -and 5. To specify a domain is to start at boot-time, place its 19.405 -configuration file (or a link to it) under /etc/xc/auto/. 19.406 - 19.407 -The script will also stop ALL domains when the system is shut down, 19.408 -even domains that it did not start originally. 19.409 - 19.410 -You can also use the "service" command (part of the RedHat standard 19.411 -distribution) to run this script manually, e.g: 19.412 - 19.413 -# service xendomains start 19.414 - 19.415 -Starts all the domains with config files under /etc/xc/auto/. 19.416 - 19.417 -# service xendomains stop 19.418 - 19.419 -Shuts down ALL running Xen domains.
20.1 --- a/docs/HOWTOs/XenDebugger-HOWTO Fri Aug 06 12:20:20 2004 +0000 20.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 20.3 @@ -1,304 +0,0 @@ 20.4 -Pervasive Debugging 20.5 -=================== 20.6 - 20.7 -Alex Ho (alex.ho at cl.cam.ac.uk) 20.8 - 20.9 -Introduction 20.10 ------------- 20.11 - 20.12 -The pervasive debugging project is leveraging Xen to 20.13 -debug distributed systems. We have added a gdb stub 20.14 -to Xen to allow for remote debugging of both Xen and 20.15 -guest operating systems. More information about the 20.16 -pervasive debugger is available at: http://www.cl.cam.ac.uk/netos/pdb 20.17 - 20.18 - 20.19 -Implementation 20.20 --------------- 20.21 - 20.22 -The gdb stub communicates with gdb running over a serial line. 20.23 -The main entry point is pdb_handle_exception() which is invoked 20.24 -from: pdb_key_pressed() ('D' on the console) 20.25 - do_int3_exception() (interrupt 3: breakpoint exception) 20.26 - do_debug() (interrupt 1: debug exception) 20.27 - 20.28 -This accepts characters from the serial port and passes gdb 20.29 -commands to pdb_process_command() which implements the gdb stub 20.30 -interface. This file draws heavily from the kgdb project and 20.31 -sample gdbstub provided with gdb. 20.32 - 20.33 -The stub can examine registers, single step and continue, and 20.34 -read and write memory (in Xen, a domain, or a Linux process' 20.35 -address space). The debugger does not currently trace the 20.36 -current process, so all bets are off if context switch occurs 20.37 -in the domain. 20.38 - 20.39 - 20.40 -Setup 20.41 ------ 20.42 - 20.43 - +-------+ telnet +-----------+ serial +-------+ 20.44 - | GDB |--------| nsplitd |--------| Xen | 20.45 - +-------+ +-----------+ +-------+ 20.46 - 20.47 -To run pdb, Xen must be appropriately configured and 20.48 -a suitable serial interface attached to the target machine. 20.49 -GDB and nsplitd can run on the same machine. 20.50 - 20.51 -Xen Configuration 20.52 - 20.53 - Add the "pdb=xxx" option to your Xen boot command line 20.54 - where xxx is one of the following values: 20.55 - com1 gdb stub should communicate on com1 20.56 - com1H gdb stub should communicate on com1 (with high bit set) 20.57 - com2 gdb stub should communicate on com2 20.58 - com2H gdb stub should communicate on com2 (with high bit set) 20.59 - 20.60 - Symbolic debugging infomration is quite helpful too: 20.61 - xeno.bk/xen/arch/i386/Rules.mk 20.62 - add -g to CFLAGS to compile Xen with symbols 20.63 - xeno.bk/xenolinux-2.4.24-sparse/arch/xen/Makefile 20.64 - add -g to CFLAGS to compile Linux with symbols 20.65 - 20.66 - You may also want to consider dedicating a register to the 20.67 - frame pointer (disable the -fomit-frame-pointer compile flag). 20.68 - 20.69 - When booting Xen and domain 0, look for the console text 20.70 - "Initializing pervasive debugger (PDB)" just before DOM0 starts up. 20.71 - 20.72 -Serial Port Configuration 20.73 - 20.74 - pdb expects to communicate with gdb using the serial port. Since 20.75 - this port is often shared with the machine's console output, pdb can 20.76 - discriminate its communication by setting the high bit of each byte. 20.77 - 20.78 - A new tool has been added to the source tree which splits 20.79 - the serial output from a remote machine into two streams: 20.80 - one stream (without the high bit) is the console and 20.81 - one stream (with the high bit stripped) is the pdb communication. 20.82 - 20.83 - See: xeno.bk/tools/misc/nsplitd 20.84 - 20.85 - nsplitd configuration 20.86 - --------------------- 20.87 - hostname$ more /etc/xinetd.d/nsplit 20.88 - service nsplit1 20.89 - { 20.90 - socket_type = stream 20.91 - protocol = tcp 20.92 - wait = no 20.93 - user = wanda 20.94 - server = /usr/sbin/in.nsplitd 20.95 - server_args = serial.cl.cam.ac.uk:wcons00 20.96 - disable = no 20.97 - only_from = 128.232.0.0/17 127.0.0.1 20.98 - } 20.99 - 20.100 - hostname$ egrep 'wcons00|nsplit1' /etc/services 20.101 - wcons00 9600/tcp # Wanda remote console 20.102 - nsplit1 12010/tcp # Nemesis console splitter ports. 20.103 - 20.104 - Note: nsplitd was originally written for the Nemesis project 20.105 - at Cambridge. 20.106 - 20.107 - After nsplitd accepts a connection on <port> (12010 in the above 20.108 - example), it starts listening on port <port + 1>. Characters sent 20.109 - to the <port + 1> will have the high bit set and vice versa for 20.110 - characters received. 20.111 - 20.112 - You can connect to the nsplitd using 20.113 - 'tools/misc/xencons <host> <port>' 20.114 - 20.115 -GDB 6.0 20.116 - pdb has been tested with gdb 6.0. It should also work with 20.117 - earlier versions. 20.118 - 20.119 - 20.120 -Usage 20.121 ------ 20.122 - 20.123 -1. Boot Xen and Linux 20.124 -2. Interrupt Xen by pressing 'D' at the console 20.125 - You should see the console message: 20.126 - (XEN) pdb_handle_exception [0x88][0x101000:0xfc5e72ac] 20.127 - At this point Xen is frozen and the pdb stub is waiting for gdb commands 20.128 - on the serial line. 20.129 -3. Attach with gdb 20.130 - (gdb) file xeno.bk/xen/xen 20.131 - Reading symbols from xeno.bk/xen/xen...done. 20.132 - (gdb) target remote <hostname>:<port + 1> /* contact nsplitd */ 20.133 - Remote debugging using serial.srg:12131 20.134 - continue_cpu_idle_loop () at current.h:10 20.135 - warning: shared library handler failed to enable breakpoint 20.136 - (gdb) break __enter_scheduler 20.137 - Breakpoint 1 at 0xfc510a94: file schedule.c, line 330. 20.138 - (gdb) cont 20.139 - Continuing. 20.140 - 20.141 - Program received signal SIGTRAP, Trace/breakpoint trap. 20.142 - __enter_scheduler () at schedule.c:330 20.143 - (gdb) step 20.144 - (gdb) step 20.145 - (gdb) print next /* the variable prev has been optimized away! */ 20.146 - $1 = (struct task_struct *) 0x0 20.147 - (gdb) delete 20.148 - Delete all breakpoints? (y or n) y 20.149 -4. You can add additional symbols to gdb 20.150 - (gdb) add-sym xenolinux-2.4.24/vmlinux 20.151 - add symbol table from file "xenolinux-2.4.24/vmlinux" at 20.152 - (y or n) y 20.153 - Reading symbols from xenolinux-2.4.24/vmlinux...done. 20.154 - (gdb) x/s cpu_vendor_names[0] 20.155 - 0xc01530d2 <cpdext+62898>: "Intel" 20.156 - (gdb) break free_uid 20.157 - Breakpoint 2 at 0xc0012250 20.158 - (gdb) cont 20.159 - Continuing. /* run a command in domain 0 */ 20.160 - 20.161 - Program received signal SIGTRAP, Trace/breakpoint trap. 20.162 - free_uid (up=0xbffff738) at user.c:77 20.163 - 20.164 - (gdb) print *up 20.165 - $2 = {__count = {counter = 0}, processes = {counter = 135190120}, files = { 20.166 - counter = 0}, next = 0x395, pprev = 0xbffff878, uid = 134701041} 20.167 - (gdb) finish 20.168 - Run till exit from #0 free_uid (up=0xbffff738) at user.c:77 20.169 - 20.170 - Program received signal SIGTRAP, Trace/breakpoint trap. 20.171 - release_task (p=0xc2da0000) at exit.c:51 20.172 - (gdb) print *p 20.173 - $3 = {state = 4, flags = 4, sigpending = 0, addr_limit = {seg = 3221225472}, 20.174 - exec_domain = 0xc016a040, need_resched = 0, ptrace = 0, lock_depth = -1, 20.175 - counter = 1, nice = 0, policy = 0, mm = 0x0, processor = 0, 20.176 - cpus_runnable = 1, cpus_allowed = 4294967295, run_list = {next = 0x0, 20.177 - prev = 0x0}, sleep_time = 18995, next_task = 0xc017c000, 20.178 - prev_task = 0xc2f94000, active_mm = 0x0, local_pages = {next = 0xc2da0054, 20.179 - prev = 0xc2da0054}, allocation_order = 0, nr_local_pages = 0, 20.180 - ... 20.181 -5. To resume Xen, enter the "continue" command to gdb. 20.182 - This sends the packet $c#63 along the serial channel. 20.183 - 20.184 - (gdb) cont 20.185 - Continuing. 20.186 - 20.187 -Debugging Multiple Domains & Processes 20.188 --------------------------------------- 20.189 - 20.190 -pdb supports debugging multiple domains & processes. You can switch 20.191 -between different domains and processes within domains and examine 20.192 -variables in each. 20.193 - 20.194 -The pdb context identifies the current debug target. It is stored 20.195 -in the xen variable pdb_ctx and defaults to xen. 20.196 - 20.197 - target pdb_ctx.domain pdb_ctx.process 20.198 - ------ -------------- --------------- 20.199 - xen -1 -1 20.200 - guest os 0,1,2,... -1 20.201 - process 0,1,2,... 0,1,2,... 20.202 - 20.203 -Unfortunately, gdb doesn't understand debugging multiple process 20.204 -simultaneously (we're working on it), so at present you are limited 20.205 -to just one set of symbols for symbolic debugging. When debugging 20.206 -processes, pdb currently supports just Linux 2.4. 20.207 - 20.208 - define setup 20.209 - file xeno-clone/xeno.bk/xen/xen 20.210 - add-sym xeno-clone/xenolinux-2.4.25/vmlinux 20.211 - add-sym ~ach61/a.out 20.212 - end 20.213 - 20.214 - 20.215 -1. Connect with gdb as before. A couple of Linux-specific 20.216 - symbols need to be defined. 20.217 - 20.218 - (gdb) target remote <hostname>:<port + 1> /* contact nsplitd */ 20.219 - Remote debugging using serial.srg:12131 20.220 - continue_cpu_idle_loop () at current.h:10 20.221 - warning: shared library handler failed to enable breakpoint 20.222 - (gdb) set pdb_pidhash_addr = &pidhash 20.223 - (gdb) set pdb_init_task_union_addr = &init_task_union 20.224 - 20.225 -2. The pdb context defaults to Xen and we can read Xen's memory. 20.226 - An attempt to access domain 0 memory fails. 20.227 - 20.228 - (gdb) print pdb_ctx 20.229 - $1 = {valid = 0, domain = -1, process = -1, ptbr = 1052672} 20.230 - (gdb) print hexchars 20.231 - $2 = "0123456789abcdef" 20.232 - (gdb) print cpu_vendor_names 20.233 - Cannot access memory at address 0xc0191f80 20.234 - 20.235 -3. Now we change to domain 0. In addition to changing pdb_ctx.domain, 20.236 - we need to change pdb_ctx.valid to signal pdb of the change. 20.237 - It is now possible to examine Xen and Linux memory. 20.238 - 20.239 - (gdb) set pdb_ctx.domain=0 20.240 - (gdb) set pdb_ctx.valid=1 20.241 - (gdb) print hexchars 20.242 - $3 = "0123456789abcdef" 20.243 - (gdb) print cpu_vendor_names 20.244 - $4 = {0xc0158b46 "Intel", 0xc0158c37 "Cyrix", 0xc0158b55 "AMD", 20.245 - 0xc0158c3d "UMC", 0xc0158c41 "NexGen", 0xc0158c48 "Centaur", 20.246 - 0xc0158c50 "Rise", 0xc0158c55 "Transmeta"} 20.247 - 20.248 -4. Now change to a process within domain 0. Again, we need to 20.249 - change pdb_ctx.valid in addition to pdb_ctx.process. 20.250 - 20.251 - (gdb) set pdb_ctx.process=962 20.252 - (gdb) set pdb_ctx.valid =1 20.253 - (gdb) print pdb_ctx 20.254 - $1 = {valid = 0, domain = 0, process = 962, ptbr = 52998144} 20.255 - (gdb) print aho_a 20.256 - $2 = 20 20.257 - 20.258 -5. Now we can read the same variable from another process running 20.259 - the same executable in another domain. 20.260 - 20.261 - (gdb) set pdb_ctx.domain=1 20.262 - (gdb) set pdb_ctx.process=1210 20.263 - (gdb) set pdb_ctx.valid=1 20.264 - (gdb) print pdb_ctx 20.265 - $3 = {valid = 0, domain = 1, process = 1210, ptbr = 70574080} 20.266 - (gdb) print aho_a 20.267 - $4 = 27 20.268 - 20.269 - 20.270 -Some Helpful .gdbinit Commands 20.271 ------------------------------- 20.272 - 20.273 -define setup 20.274 - file .../install/boot/xen-syms 20.275 - add-sym .../install/boot/vmlinux-syms-2.4.26-xen0 20.276 - add-sym /homes/aho/a.out 20.277 -end 20.278 -document setup 20.279 - load symbols for xen, xenolinux (dom 0), and "a.out" 20.280 -end 20.281 - 20.282 -define setup-linux 20.283 - set pdb_pidhash_addr = &pidhash 20.284 - set pdb_init_task_union_addr = &init_task_union 20.285 - 20.286 - set task_struct_mm_offset = (void *)&(init_task_union.task.mm) - (void *)&(init_task_union.task) 20.287 - set task_struct_next_task_offset = (void *)&(init_task_union.task.next_task) - (void *)&(init_task_union.task) 20.288 - set task_struct_pid_offset = (void *)&(init_task_union.task.pid) - (void *)&(init_task_union.task) 20.289 - set task_struct_pidhash_next_offset = (void *)&(init_task_union.task.pidhash_next) - (void *)&(init_task_union.task) 20.290 - set task_struct_comm_offset = (void *)&(init_task_union.task.comm) - (void *)&(init_task_union.task) 20.291 - set task_struct_comm_length = sizeof (init_task_union.task.comm) 20.292 - 20.293 - set mm_struct_pgd_offset = sizeof (struct vm_area_struct *) * 2 + sizeof (rb_root_t) 20.294 -end 20.295 -document setup-linux 20.296 - define various xenolinux specific offsets and sizes in pdb 20.297 -end 20.298 - 20.299 - 20.300 - 20.301 - 20.302 -Changes 20.303 -------- 20.304 - 20.305 -04.07.15 aho .gdbinit 20.306 -04.02.05 aho creation 20.307 -04.03.31 aho add description on debugging multiple domains
21.1 --- a/docs/Makefile Fri Aug 06 12:20:20 2004 +0000 21.2 +++ b/docs/Makefile Thu Feb 10 13:17:10 2005 +0000 21.3 @@ -1,46 +1,68 @@ 21.4 +#!/usr/bin/make -f 21.5 21.6 -# Generic LaTeX makefile. 21.7 -# 21.8 -# Xfig and tgif diagrams should be in the fig/ subdirectory. 21.9 -# DOCUMENTS should be a list of the target Postscript files. 21.10 +INSTALL = install 21.11 +INSTALL_DIR = $(INSTALL) -d -m0755 21.12 21.13 -DOCUMENTS = interface.ps interface.pdf interface.html user.ps \ 21.14 - user.pdf user.html 21.15 +PS2PDF := ps2pdf 21.16 +DVIPS := dvips 21.17 +LATEX := latex 21.18 +FIG2DEV := fig2dev 21.19 +TGIF := tgif 21.20 +LATEX2HTML := latex2html 21.21 + 21.22 +pkgdocdir := /usr/share/doc/xen 21.23 + 21.24 +DOC_TEX := $(wildcard src/*.tex) 21.25 +DOC_PS := $(patsubst src/%.tex,ps/%.ps,$(DOC_TEX)) 21.26 +DOC_PDF := $(patsubst src/%.tex,pdf/%.pdf,$(DOC_TEX)) 21.27 +DOC_HTML := $(patsubst src/%.tex,html/%/index.html,$(DOC_TEX)) 21.28 21.29 GFX = $(patsubst %.obj, %.eps, $(wildcard figs/*.obj)) 21.30 GFX += $(patsubst %.fig, %.eps, $(wildcard figs/*.fig)) 21.31 21.32 -all: $(DOCUMENTS) 21.33 +all: ps pdf html 21.34 + rm -f *.aux *.dvi *.bbl *.blg *.glo *.idx *.ilg *.log *.ind *.toc 21.35 21.36 -pristine: clean 21.37 - rm -f $(DOCUMENTS) 21.38 +ps: $(DOC_PS) 21.39 + 21.40 +pdf: $(DOC_PDF) 21.41 + 21.42 +html: $(DOC_HTML) 21.43 21.44 clean: 21.45 - rm -f .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~ 21.46 - rm -f *.ilg *.log *.ind *.toc *.bak core 21.47 - rm -f figs/*.eps $(DOCUMENTS) 21.48 - rm -rf user/ 21.49 - rm -rf interface/ 21.50 + rm -rf .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~ 21.51 + rm -rf *.ilg *.log *.ind *.toc *.bak core 21.52 + rm -rf $(GFX) ps pdf html 21.53 21.54 -install: $(DOCUMENTS) 21.55 - mkdir -p $(prefix)/usr/share/doc/xen 21.56 - cp -a $(DOCUMENTS) VBD-HOWTO.txt Xen-HOWTO.txt $(prefix)/usr/share/doc/xen 21.57 +install: all 21.58 + rm -rf $(DESTDIR)$(pkgdocdir) 21.59 + $(INSTALL_DIR) $(DESTDIR)$(pkgdocdir) 21.60 + cp -dR ps $(DESTDIR)$(pkgdocdir) 21.61 + cp -dR pdf $(DESTDIR)$(pkgdocdir) 21.62 + cp -dR html $(DESTDIR)$(pkgdocdir) 21.63 21.64 -%.pdf: %.ps 21.65 - ps2pdf $< $@ 21.66 +pdf/%.pdf: ps/%.ps 21.67 + $(INSTALL_DIR) $(@D) 21.68 + $(PS2PDF) $< $@.new 21.69 + mv $@.new $@ 21.70 21.71 -%.ps: %.dvi $(GFX) 21.72 - dvips -Ppdf -G0 -o $@ $< 21.73 +ps/%.ps: %.dvi 21.74 + $(INSTALL_DIR) $(@D) 21.75 + $(DVIPS) -Ppdf -G0 -o $@.new $< 21.76 + mv $@.new $@ 21.77 21.78 -%.dvi: %.tex 21.79 - latex $* >/dev/null 21.80 - if [ -e $*.toc ] ; then latex $* >/dev/null ; fi 21.81 +%.dvi: src/%.tex $(GFX) 21.82 + $(LATEX) $< >/dev/null 21.83 + if [ -e $*.toc ] ; then $(LATEX) $< >/dev/null ; fi 21.84 21.85 %.eps: %.fig 21.86 - fig2dev -L eps $< $@ 21.87 + $(FIG2DEV) -L eps $< $@ 21.88 21.89 %.eps: %.obj 21.90 - tgif -print -color -eps $< 21.91 + $(TGIF) -print -color -eps $< 21.92 21.93 -%.html: %.tex 21.94 - latex2html --split 0 --nonavigation --noinfo --math $< 1>/dev/null 2>/dev/null 21.95 +html/%/index.html: src/%.tex 21.96 + $(INSTALL_DIR) $(@D) 21.97 + $(LATEX2HTML) -split 0 -show_section_numbers -toc_depth 3 -nonavigation \ 21.98 + -numbered_footnotes -local_icons -noinfo -math -dir $(@D) \ 21.99 + $< 1>/dev/null 2>/dev/null
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 22.2 +++ b/docs/check_pkgs Thu Feb 10 13:17:10 2005 +0000 22.3 @@ -0,0 +1,22 @@ 22.4 + 22.5 +silent_which () 22.6 +{ 22.7 + if ! `which $1 1>/dev/null 2>/dev/null`; then 22.8 + echo "*************************************************" 22.9 + echo "*************************************************" 22.10 + echo "* WARNING: Package '$1' is required" 22.11 + echo "* to build Xen documentation" 22.12 + echo "*************************************************" 22.13 + echo "*************************************************" 22.14 + fi 22.15 + which $1 1>/dev/null 2>/dev/null 22.16 +} 22.17 + 22.18 +silent_which latex || exit 1 22.19 +silent_which latex2html || exit 1 22.20 +silent_which dvips || exit 1 22.21 +silent_which ps2pdf || exit 1 22.22 +silent_which fig2dev || exit 1 22.23 +silent_which tgif || exit 1 22.24 + 22.25 +exit 0
23.1 --- a/docs/eps/xenlogo.eps Fri Aug 06 12:20:20 2004 +0000 23.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 23.3 @@ -1,1479 +0,0 @@ 23.4 -%!PS-Adobe-3.0 EPSF-3.0 23.5 -%%Creator: (ImageMagick) 23.6 -%%Title: (/homes/kaf24/xenlogo.eps) 23.7 -%%CreationDate: (Tue Oct 28 13:52:11 2003) 23.8 -%%BoundingBox: 155 324 445 461 23.9 -%%DocumentData: Clean7Bit 23.10 -%%LanguageLevel: 1 23.11 -%%Pages: 1 23.12 -%%EndComments 23.13 - 23.14 -%%BeginDefaults 23.15 -%%EndDefaults 23.16 - 23.17 -%%BeginProlog 23.18 -% 23.19 -% Display a color image. The image is displayed in color on 23.20 -% Postscript viewers or printers that support color, otherwise 23.21 -% it is displayed as grayscale. 23.22 -% 23.23 -/DirectClassPacket 23.24 -{ 23.25 - % 23.26 - % Get a DirectClass packet. 23.27 - % 23.28 - % Parameters: 23.29 - % red. 23.30 - % green. 23.31 - % blue. 23.32 - % length: number of pixels minus one of this color (optional). 23.33 - % 23.34 - currentfile color_packet readhexstring pop pop 23.35 - compression 0 eq 23.36 - { 23.37 - /number_pixels 3 def 23.38 - } 23.39 - { 23.40 - currentfile byte readhexstring pop 0 get 23.41 - /number_pixels exch 1 add 3 mul def 23.42 - } ifelse 23.43 - 0 3 number_pixels 1 sub 23.44 - { 23.45 - pixels exch color_packet putinterval 23.46 - } for 23.47 - pixels 0 number_pixels getinterval 23.48 -} bind def 23.49 - 23.50 -/DirectClassImage 23.51 -{ 23.52 - % 23.53 - % Display a DirectClass image. 23.54 - % 23.55 - systemdict /colorimage known 23.56 - { 23.57 - columns rows 8 23.58 - [ 23.59 - columns 0 0 23.60 - rows neg 0 rows 23.61 - ] 23.62 - { DirectClassPacket } false 3 colorimage 23.63 - } 23.64 - { 23.65 - % 23.66 - % No colorimage operator; convert to grayscale. 23.67 - % 23.68 - columns rows 8 23.69 - [ 23.70 - columns 0 0 23.71 - rows neg 0 rows 23.72 - ] 23.73 - { GrayDirectClassPacket } image 23.74 - } ifelse 23.75 -} bind def 23.76 - 23.77 -/GrayDirectClassPacket 23.78 -{ 23.79 - % 23.80 - % Get a DirectClass packet; convert to grayscale. 23.81 - % 23.82 - % Parameters: 23.83 - % red 23.84 - % green 23.85 - % blue 23.86 - % length: number of pixels minus one of this color (optional). 23.87 - % 23.88 - currentfile color_packet readhexstring pop pop 23.89 - color_packet 0 get 0.299 mul 23.90 - color_packet 1 get 0.587 mul add 23.91 - color_packet 2 get 0.114 mul add 23.92 - cvi 23.93 - /gray_packet exch def 23.94 - compression 0 eq 23.95 - { 23.96 - /number_pixels 1 def 23.97 - } 23.98 - { 23.99 - currentfile byte readhexstring pop 0 get 23.100 - /number_pixels exch 1 add def 23.101 - } ifelse 23.102 - 0 1 number_pixels 1 sub 23.103 - { 23.104 - pixels exch gray_packet put 23.105 - } for 23.106 - pixels 0 number_pixels getinterval 23.107 -} bind def 23.108 - 23.109 -/GrayPseudoClassPacket 23.110 -{ 23.111 - % 23.112 - % Get a PseudoClass packet; convert to grayscale. 23.113 - % 23.114 - % Parameters: 23.115 - % index: index into the colormap. 23.116 - % length: number of pixels minus one of this color (optional). 23.117 - % 23.118 - currentfile byte readhexstring pop 0 get 23.119 - /offset exch 3 mul def 23.120 - /color_packet colormap offset 3 getinterval def 23.121 - color_packet 0 get 0.299 mul 23.122 - color_packet 1 get 0.587 mul add 23.123 - color_packet 2 get 0.114 mul add 23.124 - cvi 23.125 - /gray_packet exch def 23.126 - compression 0 eq 23.127 - { 23.128 - /number_pixels 1 def 23.129 - } 23.130 - { 23.131 - currentfile byte readhexstring pop 0 get 23.132 - /number_pixels exch 1 add def 23.133 - } ifelse 23.134 - 0 1 number_pixels 1 sub 23.135 - { 23.136 - pixels exch gray_packet put 23.137 - } for 23.138 - pixels 0 number_pixels getinterval 23.139 -} bind def 23.140 - 23.141 -/PseudoClassPacket 23.142 -{ 23.143 - % 23.144 - % Get a PseudoClass packet. 23.145 - % 23.146 - % Parameters: 23.147 - % index: index into the colormap. 23.148 - % length: number of pixels minus one of this color (optional). 23.149 - % 23.150 - currentfile byte readhexstring pop 0 get 23.151 - /offset exch 3 mul def 23.152 - /color_packet colormap offset 3 getinterval def 23.153 - compression 0 eq 23.154 - { 23.155 - /number_pixels 3 def 23.156 - } 23.157 - { 23.158 - currentfile byte readhexstring pop 0 get 23.159 - /number_pixels exch 1 add 3 mul def 23.160 - } ifelse 23.161 - 0 3 number_pixels 1 sub 23.162 - { 23.163 - pixels exch color_packet putinterval 23.164 - } for 23.165 - pixels 0 number_pixels getinterval 23.166 -} bind def 23.167 - 23.168 -/PseudoClassImage 23.169 -{ 23.170 - % 23.171 - % Display a PseudoClass image. 23.172 - % 23.173 - % Parameters: 23.174 - % class: 0-PseudoClass or 1-Grayscale. 23.175 - % 23.176 - currentfile buffer readline pop 23.177 - token pop /class exch def pop 23.178 - class 0 gt 23.179 - { 23.180 - currentfile buffer readline pop 23.181 - token pop /depth exch def pop 23.182 - /grays columns 8 add depth sub depth mul 8 idiv string def 23.183 - columns rows depth 23.184 - [ 23.185 - columns 0 0 23.186 - rows neg 0 rows 23.187 - ] 23.188 - { currentfile grays readhexstring pop } image 23.189 - } 23.190 - { 23.191 - % 23.192 - % Parameters: 23.193 - % colors: number of colors in the colormap. 23.194 - % colormap: red, green, blue color packets. 23.195 - % 23.196 - currentfile buffer readline pop 23.197 - token pop /colors exch def pop 23.198 - /colors colors 3 mul def 23.199 - /colormap colors string def 23.200 - currentfile colormap readhexstring pop pop 23.201 - systemdict /colorimage known 23.202 - { 23.203 - columns rows 8 23.204 - [ 23.205 - columns 0 0 23.206 - rows neg 0 rows 23.207 - ] 23.208 - { PseudoClassPacket } false 3 colorimage 23.209 - } 23.210 - { 23.211 - % 23.212 - % No colorimage operator; convert to grayscale. 23.213 - % 23.214 - columns rows 8 23.215 - [ 23.216 - columns 0 0 23.217 - rows neg 0 rows 23.218 - ] 23.219 - { GrayPseudoClassPacket } image 23.220 - } ifelse 23.221 - } ifelse 23.222 -} bind def 23.223 - 23.224 -/DisplayImage 23.225 -{ 23.226 - % 23.227 - % Display a DirectClass or PseudoClass image. 23.228 - % 23.229 - % Parameters: 23.230 - % x & y translation. 23.231 - % x & y scale. 23.232 - % label pointsize. 23.233 - % image label. 23.234 - % image columns & rows. 23.235 - % class: 0-DirectClass or 1-PseudoClass. 23.236 - % compression: 0-none or 1-RunlengthEncoded. 23.237 - % hex color packets. 23.238 - % 23.239 - gsave 23.240 - /buffer 512 string def 23.241 - /byte 1 string def 23.242 - /color_packet 3 string def 23.243 - /pixels 768 string def 23.244 - 23.245 - currentfile buffer readline pop 23.246 - token pop /x exch def 23.247 - token pop /y exch def pop 23.248 - x y translate 23.249 - currentfile buffer readline pop 23.250 - token pop /x exch def 23.251 - token pop /y exch def pop 23.252 - currentfile buffer readline pop 23.253 - token pop /pointsize exch def pop 23.254 - /Times-Roman findfont pointsize scalefont setfont 23.255 - x y scale 23.256 - currentfile buffer readline pop 23.257 - token pop /columns exch def 23.258 - token pop /rows exch def pop 23.259 - currentfile buffer readline pop 23.260 - token pop /class exch def pop 23.261 - currentfile buffer readline pop 23.262 - token pop /compression exch def pop 23.263 - class 0 gt { PseudoClassImage } { DirectClassImage } ifelse 23.264 - grestore 23.265 -} bind def 23.266 -%%EndProlog 23.267 -%%Page: 1 1 23.268 -%%PageBoundingBox: 155 324 445 461 23.269 -userdict begin 23.270 -DisplayImage 23.271 -155 324 23.272 -289.992 137.145 23.273 -12.000000 23.274 -302 143 23.275 -1 23.276 -1 23.277 -1 23.278 -8 23.279 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.280 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8e6 23.281 -d4cec2b6b6aa9e9e9e9e9e9e9e9eb6b6b6c8cee0e6ffffffffffffffffffffffffffffff 23.282 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.283 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.284 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.285 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.286 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.287 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.288 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.289 -fffffffffffffff2e0c8b6a49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.290 -aabccee6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.291 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.292 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.293 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.294 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.295 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.296 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.297 -fffffffffffffffffffffffffffffffffff8e0c2aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.298 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6ceecffffffffffffffffffffffffffff 23.299 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.300 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.301 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.302 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.303 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.304 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.305 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8dabc9e9e9e9e9e 23.306 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.307 -aac8ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.308 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.309 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.310 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.311 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.312 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.313 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.314 -ffffffffe0bc9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.315 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8f2ffffffffffffffffffffffffffffffff 23.316 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.317 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.318 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.319 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.320 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.321 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.322 -fffffffffffffffffffffffffffffff8ceaa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.323 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e0 23.324 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.325 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.326 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.327 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.328 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.329 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.330 -fffffffffffffffffffffffffffffffffffffffffffffffffffffff2c29e9e9e9e9e9e9e 23.331 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.332 -9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffff 23.333 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.334 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.335 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.336 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.337 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.338 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.339 -fffffff2c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.340 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffff 23.341 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.342 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.343 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.344 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.345 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.346 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.347 -fffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.348 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.349 -9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffffffffffff 23.350 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.351 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.352 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.353 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.354 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.355 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcea49e9e9e9e9e9e 23.356 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.357 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e6ffffffffffffffff 23.358 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.359 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.360 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.361 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.362 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.363 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.364 -ffffffffe6aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.365 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.366 -9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.367 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.368 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.369 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.370 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.371 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.372 -fffffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.373 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.374 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4e0ffffffffffffffffffffffffff 23.375 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.376 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.377 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.378 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.379 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.380 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e 23.381 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1acb6bac4c8c8d6d6d6d6d6d6 23.382 -d6cfc8c8bdbaafa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.383 -9ebcf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.384 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.385 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.386 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.387 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.388 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.389 -ffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8b6c4 23.390 -cfd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8bdafa19e9e9e9e9e9e9e9e9e 23.391 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaaecffffffffffffffffffffffffffffffffffff 23.392 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.393 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.394 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.395 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.396 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.397 -fffffffffffffffffffffffffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.398 -9e9e9e9e9e9e9ea1afc1d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.399 -d6d6d6d6d6cbbaa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ed4ffffff 23.400 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.401 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.402 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.403 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.404 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.405 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e 23.406 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafc1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.407 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfbaa59e9e9e9e9e9e9e9e9e9e9e 23.408 -9e9e9e9e9e9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffff 23.409 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.410 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.411 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.412 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.413 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.414 -ffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bacfd6d6d6 23.415 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.416 -d6d6d6c8af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffff 23.417 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.418 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.419 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.420 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.421 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.422 -ffffffffffffffffffffffffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.423 -9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.424 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.425 -9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.426 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.427 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.428 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.429 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.430 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e 23.431 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.432 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cf 23.433 -b39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffff 23.434 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.435 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.436 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.437 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.438 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.439 -ffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bdd6d6d6d6 23.440 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.441 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfaf9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4 23.442 -daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.443 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.444 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.445 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.446 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.447 -ffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e 23.448 -9e9e9e9e9e9e9eb3d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.449 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e 23.450 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffffffffffffffffffffffffffffffffff 23.451 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.452 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.453 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.454 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.455 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.456 -ffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.457 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.458 -d6d6d6d6d6d6d6d6d6d6d2b69e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffff 23.459 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.460 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.461 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.462 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.463 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.464 -ffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb3d2d6d6 23.465 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.466 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e9e9e9e9e 23.467 -9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffff 23.468 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.469 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.470 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.471 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.472 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e 23.473 -9e9e9e9e9e9e9e9ea1c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.474 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.475 -d6d6d6d6d6d2af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffff 23.476 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.477 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.478 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.479 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.480 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.481 -ffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8cbd6d6d6d6d6d6d6d6d6d6d6d6d6 23.482 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.483 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6bd9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.484 -9e9ea4f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.485 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.486 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.487 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.488 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.489 -ffffffffffffffffffffffffffffffffffe09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafd2 23.490 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.491 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.492 -c8a19e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffffff 23.493 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.494 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.495 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.496 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.497 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e9e 23.498 -9e9e9e9e9e9e9e9e9e9e9eb3d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.499 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.500 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2ffffff 23.501 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.502 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.503 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.504 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.505 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.506 -fffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec1d6d6d6d6d6d6d6d6d6d6d6 23.507 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.508 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d2a89e9e9e9e 23.509 -9e9e9e9e9e9e9e9e9e9e9ed4ffffffffffffffffffffffffffffffffffffffffffffffff 23.510 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.511 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.512 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.513 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.514 -ffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.515 -9ec1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.516 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.517 -d6d6d6d6d6d6d6d6d6d2a89e9e9e9e9e9e9e9e9e9e9e9e9e9e9eecffffffffffffffffff 23.518 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.519 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.520 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.521 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.522 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda9e 23.523 -9e9e8027272727272727272727272b353535353535353535353535353535353535353535 23.524 -353535353535add6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.525 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c85035353535353535322727272727272727272727 23.526 -272727272d3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f5fefffffffffffffffffff 23.527 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.528 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.529 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.530 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.531 -fffffffffffffffffffffff2a49e9e9e9e45000000000000000000000000000000000000 23.532 -00000000000000000000000000000000000000001ac8d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.533 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad28000000000000 23.534 -000000000000000000000000000000000000000000000000000000000000000000000000 23.535 -00003fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.536 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.537 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.538 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.539 -ffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e27000000 23.540 -000000000000000000000000000000000000000000000000000000000000000000000050 23.541 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.542 -d6d6d6d6d6930d0000000000000000000000000000000000000000000000000000000000 23.543 -0000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffff 23.544 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.545 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.546 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.547 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.548 -ffffd49e9e9e9e9e9e9e9413000000000000000000000000000000000000000000000000 23.549 -000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.550 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b0000000000000000000000000000000000 23.551 -0000000000000000000000000000000000000000000000000000000fbfffffffffffffff 23.552 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.553 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.554 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.555 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.556 -fffffffffffffffffffffffffffffff8a49e9e9e9e9e9e9e9e8009000000000000000000 23.557 -000000000000000000000000000000000000000000000000000000000dadd6d6d6d6d6d6 23.558 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000 23.559 -000000000000000000000000000000000000000000000000000000000000000000000000 23.560 -000000002fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.561 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.562 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.563 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.564 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e 23.565 -9e9e9e9e6200000000000000000000000000000000000000000000000000000000000000 23.566 -0000000000000028c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.567 -d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000000000000000000000 23.568 -00000000000000000000000000000000006fffffffffffffffffffffffffffffffffffff 23.569 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.570 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.571 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.572 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.573 -ffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e4500000000000000000000000000000000 23.574 -0000000000000000000000000000000000000000000050d6d6d6d6d6d6d6d6d6d6d6d6d6 23.575 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000 23.576 -00000000000000000000000000000000000000000000000000000000000fafffffffffff 23.577 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.578 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.579 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.580 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.581 -ffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9e9e9e2b00 23.582 -000000000000000000000000000000000000000000000000000000000000000000000000 23.583 -0085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000 23.584 -000000000000000000000000000000000000000000000000000000000000000000000000 23.585 -0000000000002fcfffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.586 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.587 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.588 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.589 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09e9e 23.590 -9e9e9e9e9e9e9e9e9e9e9ea8c81a00000000000000000000000000000000000000000000 23.591 -0000000000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.592 -d6d6d6d6d6d6d6d6d6c83500000000000000000000000000000000000000000000000000 23.593 -000000000000000000000000000000000000005fefffffffffffffffffffffffffffffff 23.594 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.595 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.596 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.597 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.598 -ffffffffffffffffffffffaa9e9e9e9e9e9e9e9e9e9e9e9e9ecbd6ad0d00000000000000 23.599 -00000000000000000000000000000000000000000000000000000000000028d6d6d6d6d6 23.600 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000 23.601 -00000000000000000000000000000000000000000000000000000000000000009fffffff 23.602 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.603 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.604 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.605 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.606 -ffffffffffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e 23.607 -9e9ebad6d6d6850000000000000000000000000000000000000000000000000000000000 23.608 -0000000000000000005dd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d685 23.609 -0d0000000000000000000000000000000000000000000000000000000000000000000000 23.610 -00000000000000001fcfffffffffffffffffffffffffffffffffffffffffffffffffffff 23.611 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.612 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.613 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.614 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.615 -ffffaa9e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d65d0000000000000000000000000000 23.616 -00000000000000000000000000000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6 23.617 -d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000000000000000000000000000000000 23.618 -00000000000000000000000000000000000000000049efffffffffffffffffffffffffff 23.619 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.620 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.621 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.622 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.623 -ffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6 23.624 -350000000000000000000000000000000000000000000000000000000000000000000000 23.625 -00000dbbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000000000000000 23.626 -000000000000000000000000000000000000000000000000000000000000000000004faa 23.627 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.628 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.629 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.630 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.631 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e 23.632 -9e9e9e9e9e9eacd6d6d6d6d6d6d6c81a0000000000000000000000000000000000000000 23.633 -000000000000000000000000000000000028d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.634 -d6ad1a000000000000000000000000000000000000000000000000000000000000000000 23.635 -0000000000000000000009769e9ee0ffffffffffffffffffffffffffffffffffffffffff 23.636 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.637 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.638 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.639 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.640 -fffffffffffff29e9e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6ad0d0000000000 23.641 -00000000000000000000000000000000000000000000000000000000000000005dd6d6d6 23.642 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000000000000000 23.643 -00000000000000000000000000000000000000000000001d949e9e9eb6ffffffffffffff 23.644 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.645 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.646 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.647 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.648 -ffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9eb3d6d6 23.649 -d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000000000000000 23.650 -000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000 23.651 -000000000000000000000000000000000000000000000000000000000000000000000000 23.652 -459e9e9e9e9e9ef2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.653 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.654 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.655 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.656 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa49e 23.657 -9e9e9e9e9e9e9e9e9e9e9ecfd6d6d6d6d6d6d6d6d6d6d65d000000000000000000000000 23.658 -000000000000000000000000000000000000000000000000000dbbd6d6d6d6d6d6d6d6d6 23.659 -d6d6d6c83500000000000000000000000000000000000000000000000000000000000000 23.660 -000000000000000000000000096c9e9e9e9e9e9e9ec8ffffffffffffffffffffffffffff 23.661 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.662 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.663 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.664 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.665 -ffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6 23.666 -d6d635000000000000000000000000000000000000000000000000000000000000000000 23.667 -0000000035d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000 23.668 -000000000000000000000000000000000000000000000000001d8a9e9e9e9e9e9e9e9eaa 23.669 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.670 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.671 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.672 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.673 -ffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e 23.674 -9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6c81a000000000000000000000000000000000000 23.675 -000000000000000000000000000000000000006bd6d6d6d6d6d6d6d6d6850d0000000000 23.676 -000000000000000000000000000000000000000000000000000000000000000000000000 23.677 -00003b949e9e9e9e9e9e9e9e9e9ee0ffffffffffffffffffffffffffffffffffffffffff 23.678 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.679 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.680 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.681 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.682 -fffff89e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0d000000 23.683 -00000000000000000000000000000000000000000000000000000000000000000000a0d6 23.684 -d6d6d6d6d6d65d0000000000000000000000000000000000000000000000000000000000 23.685 -00000000000000000000000000000d7b9e9e9e9e9e9e9e9e9e9e9e9ec2ffffffffffffff 23.686 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.687 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.688 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.689 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.690 -ffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9ebdd6d6d6d6d6d6 23.691 -d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000000000000000000000 23.692 -0000000000000000000000000dc8d6d6d6d6c83500000000000000000000000000000000 23.693 -0000000000000000000000000000000000000000000000000000001aadd6a59e9e9e9e9e 23.694 -9e9e9e9e9e9ea4ffffffffffffffdfbf8f7f5f3f3f1f0000000000000000000000000000 23.695 -001f3f3f5f7f8fbfcfffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.696 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.697 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.698 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e 23.699 -9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65000000000000000000000 23.700 -00000000000000000000000000000000000000000000000000000035d6d6d6ad0d000000 23.701 -000000000000000000000000000000000000000000000000000000000000000000000000 23.702 -0000000042c8d6d6bd9e9e9e9e9e9e9e9e9e9e9e9ee6ffcf9f5f3f000000000000000000 23.703 -0000000000000000000000000000000000000000000000002f5f8fcfffffffffffffffff 23.704 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.705 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf8f7f 23.706 -3f3f0f000000000000000000003f3f7f9fdfffffffffffffffffffffffffffffffffffff 23.707 -ffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.708 -d6d6d6d62800000000000000000000000000000000000000000000000000000000000000 23.709 -0000000000006bd685000000000000000000000000000000000000000000000000000000 23.710 -000000000000000000000000000000000078d6d6d6d6cf9e9e9e9e9e9e9e9e9e9e9e6c47 23.711 -1f0000000000000000000000000000000000000000000000000000000000000000000000 23.712 -0000000000000f4f9fdfffffffffffffffffffffffffffffffffffffffffffffffffffff 23.713 -ffbf3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fefffffffffff 23.714 -ffffffffffffffaf6f2f000000000000000000000000000000000000000000001f6fcfff 23.715 -ffffffffffffffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ec1d6 23.716 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d00000000000000000000000000000000 23.717 -000000000000000000000000000000000000000000350000000000000000000000000000 23.718 -00000000000000000000000000000000000000000000000000000000000da0d6d6d6d6d6 23.719 -d6a89e9e9e9e9e9e9e763b09000000000000000000000000000000000000000000000000 23.720 -0000000000000000000000000000000000000000000000004f9fffffffffffffffffffff 23.721 -ffffffffffffffffffffffffffffff6f0000000000000000000000000000000000000000 23.722 -000000000000001fffffffffffffffffffff9f4f00000000000000000000000000000000 23.723 -000000000000000000000000003fafffffffffffffffffffffffffffffffffffffffffce 23.724 -9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0000 23.725 -000000000000000000000000000000000000000000000000000000000000000000000000 23.726 -000000000000000000000000000000000000000000000000000000000000000000000000 23.727 -00000000000035c8d6d6d6d6d6d6d6bd9e9e9e9e94621300000000000000000000000000 23.728 -000000000000000000000000000000000000000000000000000000000000000000000000 23.729 -000000000f7fefffffffffffffffffffffffffffffffffffffffffffff3f000000000000 23.730 -0000000000000000000000000000000000000000004fffffffffffffffdf6f0f00000000 23.731 -00000000000000000000000000000000000000000000000000000000003fdfffffffffff 23.732 -ffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6 23.733 -d6d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000 23.734 -000000000000000000000000000000000000000000000000000000000000000000000000 23.735 -000000000000000000000000000000000000005dd6d6d6d6d6d6d6d6d6cf9e9e944f0900 23.736 -000000000000000000000000000000000000000000000000000000000000000000000000 23.737 -00000000000000000000000000000000000000000f8fffffffffffffffffffffffffffff 23.738 -ffffffffffffff000000000000000000000000000000000000000000000000000000008f 23.739 -ffffffffffdf5f0000000000000000000000000000000000000000000000000000000000 23.740 -00000000000000000f9fffffffffffffffffffffffffffffffffff9e9e9e9e9e9e9e9e9e 23.741 -9e9e9ebdd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6500000000000000000 23.742 -000000000000000000000000000000000000000000000000000000000000000000000000 23.743 -000000000000000000000000000000000000000000000000000000000000000d93d6d6d6 23.744 -d6d6d6d6d6d6d6d69b4f0900000000000000000000000000000000000000000000000000 23.745 -000000000000000000000000000000000000000000000000000000000000000000000000 23.746 -2fcfffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000 23.747 -00000000000000000000000000bfffffffef5f0000000000000000000000000000000000 23.748 -0000000000000000000000000000000000000000000000009fffffffffffffffffffffff 23.749 -ffffffffe69e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.750 -d6d6d6d6d6d6280000000000000000000000000000000000000000000000000000000000 23.751 -000000000000000000000000000000000000000000000000000000000000000000000000 23.752 -000000000000000028bbd6d6d6d6d6d6d6d6d6d6d6850d00000000000000000000000000 23.753 -000000000000000000000000000000000000000000000000000000000000000000000000 23.754 -0000000000000000000000000000000f9fffffffffffffffffffffffffffffffffff8f00 23.755 -000000000000000000000000000000000000000000000000000000ffffff8f0f00000000 23.756 -000000000000000000000000000000000000000000000000000000000000000000000000 23.757 -0000009fffffffffffffffffffffffffffffd49e9e9e9e9e9e9e9e9e9e9ea1d6d6d6d6d6 23.758 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d0000000000000000000000000000 23.759 -000000000000000000000000000000000000000000000000000000000000000000000000 23.760 -00000000000000000000000000000000000000000050c8d6d6d6d6d6d6d6d6d6d6ad3500 23.761 -000000000000000000000000000000000000000000000000000000000000000000000000 23.762 -000000000000000000000000000000000000000000000000000000000000006fffffffff 23.763 -ffffffffffffffffffffffff5f0000000000000000000000000000000000000000000000 23.764 -000000003fffef3f00000000000000000000000000000000000000000000000000000000 23.765 -000000000000000000000000000000000000bfffffffffffffffffffffffffffc89e9e9e 23.766 -9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad 23.767 -000000000000000000000000000000000000000000000000000000000000000000000000 23.768 -0000000000000000000000000000000000000000000000000000000000000000000d85d6 23.769 -d6d6d6d6d6d6d6d6d6d66b00000000000000000000000000000000000000000000000000 23.770 -000000000000000000000000000000000000000000000000000000000000000000000000 23.771 -000000000000000000005fffffffffffffffffffffffffffffff1f000000000000000000 23.772 -0000000000000000000000000000000000006fbf0f000000000000000000000000000000 23.773 -00000000000000000000000000000000000000000000000000000000000000001fffffff 23.774 -ffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6 23.775 -d6d6d6d6d6d6d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000 23.776 -000000000000000000000000000000000000000000000000000000000000000000000000 23.777 -0000000000000000000028add6d6d6d6d6d6d6d6d6d6c835000000000000000000000000 23.778 -000000000000000000000000000000000000000000000000000000000000000000000000 23.779 -000000000000000000000000000000000000000000000000005fffffffffffffffffffff 23.780 -ffffffef000000000000000000000000000000000000000000000000000000003f000000 23.781 -000000000000000000000000000000000000000000000000000000000000000000000000 23.782 -00000000000000000000009fffffffffffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9e 23.783 -c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d650000000000000 23.784 -000000000000000000000000000000000000000000000000000000000000000000000000 23.785 -000000000000000000000000000000000000000000000042c8d6d6d6d6d6d6d6d6d6d6ad 23.786 -0d0000000000000000000000000000000000000000000000000000000000000000000000 23.787 -000000000000000000000000000000000000000000000000000000000000000000000000 23.788 -000000007fffffffffffffffffffffffffaf000000000000000000000000000000000000 23.789 -000000000000000000000000000000000000000000000000000000000000000000000000 23.790 -000000000000000000000000000000000000000000000000002fffffffffffffffffffff 23.791 -ffff9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.792 -d6d6d6d6d6d6d6d628000000000000000000000000000000000000000000000000000000 23.793 -000000000000000000000000000000000000000000000000000000000000000000000000 23.794 -78d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000 23.795 -000000000000000000000000001f3f3f3f3f3f3f00000000000000000000000000000000 23.796 -00000000000000000000000000000000000000bfffffffffffffffffffffff7f00000000 23.797 -000000000000000000000000000000000000000000000000000000000000000000000000 23.798 -000000000000000000000000000000000000000000000000000000000000000000000000 23.799 -00000000dfffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ed6d6d6d6d6d6d6d6 23.800 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d000000000000000000000000 23.801 -000000000000000000000000000000000000000000000000000000000000000000000000 23.802 -0000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d68500000000000000000000 23.803 -00000000000000000000000000000000000000000000000f5fafefffffffffffffffffcf 23.804 -8f2f000000000000000000000000000000000000000000000000000000000000001fefff 23.805 -ffffffffffffffffff3f0000000000000000000000000000000000000000000000000000 23.806 -000000000000000000000000000000000000000000000000000000000000000000000000 23.807 -000000000000000000000000000000000000bfffffffffffffffffffffe69e9e9e9e9e9e 23.808 -9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.809 -d6ad00000000000000000000000000000000000000000000000000000000000000000000 23.810 -0000000000000000000000000000000000000000000000000035c8d6d6d6d6d6d6d6d6d6 23.811 -d6d68500000000000000000000000000000000000000000000000000000000000000001f 23.812 -9fffffffffffffffffffffffffffffffbf3f000000000000000000000000000000000000 23.813 -0000000000000000000000007fffffffffffffffffffff0f000000000000000000000000 23.814 -000000000000000000000000000000000000000000000000000000000000000000000000 23.815 -00000000000000000000000000000000000000000000000000000000000000009fffffff 23.816 -ffffffffffffffce9e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.817 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000000000 23.818 -000000000000000000000000000000000000000000000000000000000000000000000000 23.819 -00006bd6d6d6d6d6d6d6d6d6d6d6d6930000000000000000000000000000000000000000 23.820 -00000000000000000000000f8fffffffffffffffffffffffffffffffffffffff8f000000 23.821 -00000000000000000000000000000000000000000000000000000fefffffffffffffffff 23.822 -cf0000000000000000000000000000000000000000000000000000000000000000000000 23.823 -000000000000000000000000000000000000000000000000000000000000000000000000 23.824 -000000000000000000008fffffffffffffffffffffce9e9e9e9e9e9e9e9e9e9e9ebad6d6 23.825 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65000000000 23.826 -000000000000000000000000000000000000000000000000000000000000000000000000 23.827 -00000000000000000000000000000d93d6d6d6d6d6d6d6d6d6d6d6d6ad0d000000000000 23.828 -0000000000000000000000000000000000000000000000002fdfffffffffffffffffffff 23.829 -ffffffffffffffffffffff9f000000000000000000000000000000000000000000000000 23.830 -00000000008fffffffffffffffff9f000000000000000000000000000000000000000000 23.831 -00000000000000000000000000000000000000003f3f3f3f3f0f00000000000000000000 23.832 -000000000000000000000000000000000000000000000000bfffffffffffffffffffffce 23.833 -9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.834 -d6d6d6d6d6d6d6d6d6d62800000000000000000000000000000000000000000000000000 23.835 -00000000000000000000000000000000000000000000000000000028bbd6d6d6d6d6d6d6 23.836 -d6d6d6d6d6c81a0000000000000000000000000000000000000000000000000000000000 23.837 -005fefffffffffffffffffffffffffffffffffffffffffffffff3f000000000000000000 23.838 -000000000000000000000000000000000000002fffffffffffffffff5f00000000000000 23.839 -0000000000000000000000000000000000000000000000000000000000001f6fcfffffff 23.840 -ffffffffaf2f000000000000000000000000000000000000000000000000000000000000 23.841 -0000bfffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6 23.842 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d00000000000000000000 23.843 -000000000000000000000000000000000000000000000000000000000000000000000000 23.844 -0000000050d6d6d6d6d6d6d6d6d6d6d6d6d6d64200000000000000000000000000000000 23.845 -00000000000000000000000000005fffffffffffffffffffffffffffffffffffffffffff 23.846 -ffffffffaf0000000000000000000000000000000000000000000000000000000000efff 23.847 -ffffffffffff2f0000000000000000000000000000000000000000000000000000000000 23.848 -0000000000000f9fffffffffffffffffffffffef2f000000000000000000000000000000 23.849 -00000000000000000000000000000000cfffffffffffffffffffffb69e9e9e9e9e9e9e9e 23.850 -9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.851 -d6d6d6ad0000000000000000000000000000000000000000000000000000000000000000 23.852 -000000000000000000000000000000000d85d6d6d6d6d6d6d6d6d6d6d6d6d6d693000000 23.853 -0000000000000000000000000000000000000000000000000000002fefffffffffffffff 23.854 -ffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000 23.855 -000000000000000000000000bfffffffffffffff00000000000000000000000000000000 23.856 -000000000000000000000000000000000000004fefffffffffffffffffffffffffffaf00 23.857 -000000000000000000000000000000000000000000000000000000000000ffffffffffff 23.858 -ffffffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.859 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6780000000000000000000000000000000000 23.860 -000000000000000000000000000000000000000000000000000000000028add6d6d6d6d6 23.861 -d6d6d6d6d6d6d6d6d6d61a00000000000000000000000000000000000000000000000000 23.862 -000000000fcfffffffffffffffffffffffffffffffffffffffffffffffffffffff1f0000 23.863 -00000000000000000000000000000000000000000000000000007fffffffffffffbf0000 23.864 -00000000000000000000000000000000000000000000000000000000000000008fffffff 23.865 -ffffffffffffffffffffffffff0000000000000000000000000000000000000000000000 23.866 -000000000000001fffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6 23.867 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a000000 23.868 -000000000000000000000000000000000000000000000000000000000000000000000000 23.869 -00000000000042c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b000000000000000000000000 23.870 -0000000000000000000000000000000000007fffffffffffffffffffffffffffffffffff 23.871 -ffffffffffffffffffffff1f000000000000000000000000000000000000000000000000 23.872 -000000007fffffffffffff7f000000000000000000000000000000000000000000000000 23.873 -0000000000000000009fffffffffffffffffffffffffffffffffff000000000000000000 23.874 -0000000000000000000000000000000000000000003fffffffffffffffffffffffb69e9e 23.875 -9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.876 -d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000000000000000 23.877 -0000000000000000000000000000000000000078d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.878 -d60d00000000000000000000000000000000000000000000000000000000001fffffffff 23.879 -ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 23.880 -0000000000000000000000000000000000004fffffffffffff4f00000000000000000000 23.881 -000000000000000000000000000000000000000000006fffffffffffffffffffffffffff 23.882 -ffffffffff0000000000000000000000000000000000000000000000000000000000007f 23.883 -ffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6 23.884 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8500000000000000000000000000000 23.885 -000000000000000000000000000000000000000000000000000000000000001aadd6d6d6 23.886 -d6d6d6d6d6d6d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000 23.887 -0000000000000000009fffffffffffffffffffffffffffffffffffffffffffffffffffff 23.888 -ffffbf00000000000000000000000000000000000000000000000000000000003fffffff 23.889 -ffffff0f000000000000000000000000000000000000000000000000000000000000003f 23.890 -ffffffffffffffffffffffffffffffffffffcf0000000000000000000000000000000000 23.891 -00000000000000000000000000afffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e 23.892 -9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad2800 23.893 -000000000000000000000000000000000000000000000000000000000000000000000000 23.894 -00000000000000001ac8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d62800000000000000 23.895 -000000000000000000000000000000000000000000000000000000000000000000000000 23.896 -000000000000000000000000000000000000000000000000000000000000000000000000 23.897 -000000000000000000007fffffffffffdf00000000000000000000000000000000000000 23.898 -0000000000000000000000000fdfffffffffffffffffffffffffffffffffffffaf000000 23.899 -000000000000000000000000000000000000000000000000000000cfffffffffffffffff 23.900 -ffffffb69e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.901 -d6d6d6d6d6d6d6d6d6d6930d000000000000000000000000000000000000000000000000 23.902 -0000000000000000000000000000000000000000000000a0d6d6d6d6d6d6d6d6d6d6d6d6 23.903 -d6d6d6d6d6bb000000000000000000000000000000000000000000000000000000000000 23.904 -000000000000000000000000000000000000000000000000000000000000000000000000 23.905 -0000000000000000000000000000000000000000000000007fffffffffffaf0000000000 23.906 -00000000000000000000000000000000000000000000000000007fffffffffffffffffff 23.907 -ffffffffffffffffffff7f00000000000000000000000000000000000000000000000000 23.908 -0000000000ffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6 23.909 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d000000000000000000000000 23.910 -000000000000000000000000000000000000000000000000000000000000000000000000 23.911 -000dc8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000 23.912 -000000000000000000000000000000000000000000000000000000000000000000000000 23.913 -000000000000000000000000000000000000000000000000000000000000000000000000 23.914 -0000afffffffffff6f000000000000000000000000000000000000000000000000000000 23.915 -0000000fefffffffffffffffffffffffffffffffffffffff3f0000000000000000000000 23.916 -0000000000000000000000000000000000003fffffffffffffffffffffffffce9e9e9e9e 23.917 -9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8 23.918 -280000000000000000000000000000000000000000000000000000000000000000000000 23.919 -0000000000000000000000000000000028d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6500000 23.920 -000000000000000000000000000000000000000000000000000000000000000000000000 23.921 -000000000000000000000000000000000000000000000000000000000000000000000000 23.922 -00000000000000000000000000000000cfffffffffff3f00000000000000000000000000 23.923 -00000000000000000000000000000000007fffffffffffffffffffffffffffffffffffff 23.924 -ffff0f00000000000000000000000000000000000000000000000000000000007fffffff 23.925 -ffffffffffffffffffce9e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.926 -d6d6d6d6d6d6d6d6d6d6d6d6a00d00000000000000000000000000000000000000000000 23.927 -000000000000000000000000000000000000000000000000000000000000005dd6d6d6d6 23.928 -d6d6d6d6d6d6d6d6d6d6d635000000000000000000000000000000000000000000000000 23.929 -000000000000000000000000000000000000000000000000000000000000000000000000 23.930 -000000000000000000000000000000000000000000000000000000000000ffffffffffff 23.931 -00000000000000000000000000000000000000000000000000000000000000dfffffffff 23.932 -ffffffffffffffffffffffffffffffdf0000000000000000000000000000000000000000 23.933 -00000000000000000000afffffffffffffffffffffffffce9e9e9e9e9e9e9e9e9e9e9eac 23.934 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b00000000000000000000 23.935 -000000000000000000000000000000000000000000000000000000000000000000000000 23.936 -0000000000000000000093d6d6d6d6d6d6d6d6d6d6d6d6d6d60000000000000000000000 23.937 -000000000000000000000000000000000000000000000000000000000000000000000000 23.938 -000000000000000000000000000000000000000000000000000000000000000000000000 23.939 -000000000000003fffffffffffbf00000000000000000000000000000000000000000000 23.940 -00000000000000004fffffffffffffffffffffffffffffffffffffffffaf000000000000 23.941 -000000000000000000000000000000000000000000000000dfffffffffffffffffffffff 23.942 -ffe69e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.943 -d6c835000000000000000000000000000000000000000000000000000000000000000000 23.944 -0000000000000000000000000000000000000000000000000dbbd6d6d6d6d6d6d6d6d6d6 23.945 -d6d6d6000000000000000000000000000000000000000000000000000000000000000000 23.946 -000000000000000000000000000000000000000000000000000000000000000000000000 23.947 -0000000000000000000000000000000000000000006fffffffffff8f0000000000000000 23.948 -000000000000000000000000000000000000000000009fffffffffffffffffffffffffff 23.949 -ffffffffffffff7f00000000000000000000000000000000000000000000000000000000 23.950 -000fffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ed6d6d6d6d6d6d6d6 23.951 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a0000000000000000000000000000000000000000 23.952 -000000000000000000000000000000000000000000000000000000000000000000000000 23.953 -00000028c8d6d6d6d6d6d6d6d6d6d6d6d600000000000000000000000000000000000000 23.954 -000000000000000000000000000000000000000000000000000000000000000000000000 23.955 -0000000000000000000000000000000000000000000000000000000000000000000000af 23.956 -ffffffffff5f000000000000000000000000000000000000000000000000000000000000 23.957 -efffffffffffffffffffffffffffffffffffffffff3f0000000000000000000000000000 23.958 -0000000000000000000000000000004fffffffffffffffffffffffffffff9e9e9e9e9e9e 23.959 -9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6780000000000000000 23.960 -000000000000000000000000000000000000000000000000000000000000000000000000 23.961 -00000000000000000000000000000000000050d6d6d6d6d6d6d6d6d6d6d6d60000000000 23.962 -000000000000000000000000000000000000000000000000000000000000000000000000 23.963 -000000000000000000000000000000000000000000000000000000000000000000000000 23.964 -00000000000000000000000000dfffffffffff1f00000000000000000000000000000000 23.965 -000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffff0f 23.966 -00000000000000000000000000000000000000000000000000000000007fffffffffffff 23.967 -ffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.968 -d6d6d6c85000000000000000000000000000000000000000000000000000000000000000 23.969 -00000000000000000000000000000000000000000000000000000000000000000085d6d6 23.970 -d6d6d6d6d6d6d6d6d6000000000000000000000000000000000000000000000000000000 23.971 -000000000000000000000000000000000000000000000000000000000000000000000000 23.972 -00000000000000000000000000000000000000000000000000001fffffffffffef000000 23.973 -0000000000000000000000000000000000000000000000000000006fffffffffffffffff 23.974 -ffffffffffffffffffffffffdf0000000000000000000000000000000000000000000000 23.975 -00000000000000bfffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ebad6 23.976 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad28000000000000000000000000000000000000 23.977 -000000000000000000000000000000000000000000000000000000000000000000000000 23.978 -00000000000000000000000dadd6d6d6d6d6d6d6d6d6d600000000000000000000000000 23.979 -0000000000000000000000000000000027737f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 23.980 -7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 23.981 -7f7f7f7f9fffffffffffaf00000000000000000000000000000000000000000000000000 23.982 -00000000009fffffffffffffffffffffffffffffffffffffffff9f000000000000000000 23.983 -000000000000000000000000000000000000000000efffffffffffffffffffffffffffff 23.984 -c89e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000 23.985 -000000000000000000000000000000000000000000000000000000000000000000000000 23.986 -000000000000000000000000000000000000000000000000000028c8d6d6d6d6d6d6d6d6 23.987 -d60d000000000000000000000000000000000000000000000000000000003becffffffff 23.988 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.989 -ffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000 23.990 -00000000000000000000000000000000000000cfffffffffffffffffffffffffffffffff 23.991 -ffffffff6f00000000000000000000000000000000000000000000000000000000002fff 23.992 -ffffffffffffffffffffffffffffd49e9e9e9e9e9e9e9e9e9e9ea1d6d6d6d6d6d6d6d6d6 23.993 -d6d6d6d6d6d65d0000000000000000000000000000000000000000000000000000000000 23.994 -000000000000000000000000000000000000000000000000000000000000000000000000 23.995 -000000000050d6d6d6d6d6d6d6d6d6350000000000000000000000000000000000000000 23.996 -00000000000000001dffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.997 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.998 -ffff3f00000000000000000000000000000000000000000000000000000000000fffffff 23.999 -ffffffffffffffffffffffffffffffffffff3f0000000000000000000000000000000000 23.1000 -0000000000000000000000005fffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e 23.1001 -9e9e9e9e9ecbd6d6d6d6d6d6d6d6d6d6d6d6bb2800000000000000000000000000000000 23.1002 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1003 -000000000000000000000000000000000000000078d6d6d6d6d6d6d6d66b000000000000 23.1004 -0000000000000000000000000000000000000000000000dfffffffffffffffffffffffff 23.1005 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1006 -ffffffffffffffffffffffffffffffff0f00000000000000000000000000000000000000 23.1007 -000000000000000000003fffffffffffffffffffffffffffffffffffffffffff00000000 23.1008 -00000000000000000000000000000000000000000000000000008fffffffffffffffffff 23.1009 -ffffffffffffff9e9e9e9e9e9e9e9e9e9e9e9ebdd6d6d6d6d6d6d6d6d6d6d6a00d000000 23.1010 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1011 -0000000000000000000000000000000000000000000000000000000000000000000000ad 23.1012 -d6d6d6d6d6d6d6a000000000000000000000000000000000000000000000000000000000 23.1013 -006fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1014 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcf000000000000 23.1015 -0000000000000000000000000000000000000000000000007fffffffffffffffffffffff 23.1016 -ffffffffffffffffffbf0000000000000000000000000000000000000000000000000000 23.1017 -00000000cfffffffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9eafd6d6 23.1018 -d6d6d6d6d6d6d6d66b000000000000000000000000000000000000000000000000000000 23.1019 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1020 -000000000000000000000000001ac8d6d6d6d6d6d6d60d00000000000000000000000000 23.1021 -0000000000000000000000000000000fdfffffffffffffffffffffffffffffffffffffff 23.1022 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1023 -ffffffffffffff9f00000000000000000000000000000000000000000000000000000000 23.1024 -0000bfffffffffffffffffffffffffffffffffffffffff8f000000000000000000000000 23.1025 -000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffce 23.1026 -9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6c8350000000000000000000000000000 23.1027 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1028 -0000000000000000000000000000000000000000000000000000000042d6d6d6d6d6d6d6 23.1029 -6b00000000000000000000000000000000000000000000000000000000003fffffffffff 23.1030 -ffffffffffffffffffffffffffffffffffffffcf3f3f3f3f5f7f7f7fafbfbfbfffffffff 23.1031 -ffffffffffffffffffffffffffffffffffffffffff5f0000000000000000000000000000 23.1032 -00000000000000000000000000000000efffffffffffffffffffffffffffffffffffffff 23.1033 -ff5f00000000000000000000000000000000000000000000000000000000003fffffffff 23.1034 -ffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ec1d6d6d6d6d6d6ad0d00 23.1035 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1036 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1037 -000000000000006bd6d6d6d6d6d6bb000000000000000000000000000000000000000000 23.1038 -0000000000000000005fffffffffffffffffffffffffffffffffffffffffffffaf0f0000 23.1039 -000000000000000000000000000f3f3f3f5f7f7f7fafbfbfbfffffffffffffffffffff2f 23.1040 -00000000000000000000000000000000000000000000000000000000001fffffffffffff 23.1041 -ffffffffffffffffffffffffffffff1f0000000000000000000000000000000000000000 23.1042 -0000000000000000006fffffffffffffffffffffffffffffffffffffa49e9e9e9e9e9e9e 23.1043 -9e9e9e9eafd6d6d6d6d67800000000000000000000000000000000000000000000000000 23.1044 -000000000000000000000000000000000000005d35000000000000000000000000000000 23.1045 -00000000000000000000000000000000000000000000a0d6d6d6d6d6d65d000000000000 23.1046 -0000000000000000000000000000000000000000000000004fefffffffffffffffffffff 23.1047 -ffffffffffffffffdf4f0000000000000000000000000000000000000000000000000000 23.1048 -00000000003fffffffffffffff0000000000000000000000000000000000000000000000 23.1049 -000000000000005fffffffffffffffffffffffffffffffffffffffffef00000000000000 23.1050 -0000000000000000000000000000000000000000000000afffffffffffffffffffffffff 23.1051 -ffffffffffffbc9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6c842000000000000000000000000 23.1052 -000000000000000000000000000000000000000000000000000000000000000085d6c80d 23.1053 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1054 -0dc8d6d6d6d6d6c80d000000000000000000000000000000000000000000000000000000 23.1055 -0000000f7fefffffffffffffffffffffffffffffcf5f0000000000000000000000000000 23.1056 -0000000000000000000000000000000000002fefffffffffffffbf000000000000000000 23.1057 -0000000000000000000000000000000000000000008fffffffffffffffffffffffffffff 23.1058 -ffffffffffffbf0000000000000000000000000000000000000000000000000000000000 23.1059 -00dfffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9ebdd6ad 23.1060 -280000000000000000000000000000000000000000000000000000000000000000000000 23.1061 -00000000000000000dadd6d6d69300000000000000000000000000000000000000000000 23.1062 -00000000000000000000000000000035d6d6d6d6d6d69300000000000000000000000000 23.1063 -000000000000000000000000000000000000000f4f8fbfffffffffffffffbf9f6f1f0000 23.1064 -000000000000000000000000000000000000000000000000000000000000000fefffffff 23.1065 -ffffffff7f000000000000000000000000000000000000000000000000000000000000cf 23.1066 -ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000 23.1067 -00000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff89e 23.1068 -9e9e9e9e9e9e9e9e9e9e9ea5850d00000000000000000000000000000000000000000000 23.1069 -00000000000000000000000000000000000000000028c8d6d6d6d6d64200000000000000 23.1070 -0000000000000000000000000000000000000000000000000000000000005dd6d6d6d6d6 23.1071 -d65d00000000000000000000000000000000000000000000000000000000000000000000 23.1072 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1073 -00000000000000000fcfffffffffffffffff4f0000000000000000000000000000000000 23.1074 -00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff3f00 23.1075 -000000000000000000000000000000000000000000000000000000004fffffffffffffff 23.1076 -ffffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e9e3b00000000000000000000 23.1077 -0000000000000000000000000000000000000000000000000000000000000000000050d6 23.1078 -d6d6d6d6d6d6c81a00000000000000000000000000000000000000000000000000000000 23.1079 -00000000000000000093d6d6d6d6d6d65000000000000000000000000000000000000000 23.1080 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1081 -0000000000000000000000000000000000000000002fdfffffffffffffffffff0f000000 23.1082 -00000000000000000000000000000000000000000000000000003fffffffffffffffffff 23.1083 -ffffffffffffffffffffffff0f0000000000000000000000000000000000000000000000 23.1084 -0000000000007fffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e 23.1085 -9e8a1d000000000000000000000000000000000000000000000000000000000000000000 23.1086 -000000000000000000000078d6d6d6d6d6d6d6d6d6a00000000000000000000000000000 23.1087 -00000000000000000000000000000000000000000000000dbbd6d6d6d6d6c82800000000 23.1088 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1089 -000000000000000000000000000000000000000000000000000000000000000000003fef 23.1090 -ffffffffffffffffffdf0000000000000000000000000000000000000000000000000000 23.1091 -000000006fffffffffffffffffffffffffffffffffffffffffdf00000000000000000000 23.1092 -0000000000000000000000000000000000000000bfffffffffffffffffffffffffffffff 23.1093 -ffffffffffffa49e9e9e9e9e9e9e6c090000000000000000000000000000000000000000 23.1094 -00000000000000000000000000000000000000000000000da0d6d6d6d6d6d6d6d6d6d6d6 23.1095 -5d0000000000000000000000000000000000000000000000000000000000000000000000 23.1096 -000028d6d6d6d6d6d6c85000000000000000000000000000000000000000000000000000 23.1097 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1098 -00000000000000000000006fffffffffffffffffffffffaf000000000000000000000000 23.1099 -000000000000000000000000000000000000afffffffffffffffffffffffffffffffffff 23.1100 -ffffff9f000000000000000000000000000000000000000000000000000000000000efff 23.1101 -ffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e450000000000000000 23.1102 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1103 -28add6d6d6d6d6d6d6d6d6d6d6d6d6280000000000000000000000000000000000000000 23.1104 -00000000000000000000000000000000005dd6d6d6d6d6d6d65d00000000000000000000 23.1105 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1106 -00000000000000000000000000000000000000000000000fbfffffffffffffffffffffff 23.1107 -ff6f000000000000000000000000000000000000000000000000000000000000dfffffff 23.1108 -ffffffffffffffffffffffffffffffffff6f000000000000000000000000000000000000 23.1109 -00000000000000000000002ffffffffffffffffffffffffffffffffffffffffffffff29e 23.1110 -9e9e9e942700000000000000000000000000000000000000000000000000000000000000 23.1111 -0000000000000000000000000042c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad000000000000 23.1112 -000000000000000000000000000000000000000000000000000000000000000085d6d6d6 23.1113 -d6d6d6d6850d000000000000000000000000000000000000000000000000000000000000 23.1114 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1115 -6fefffffffffffffffffffffffffff3f0000000000000000000000000000000000000000 23.1116 -0000000000000000001fffffffffffffffffffffffffffffffffffffffffff3f00000000 23.1117 -000000000000000000000000000000000000000000000000005fffffffffffffffffffff 23.1118 -ffffffffffffffffffffffffffb69e9e7609000000000000000000000000000000000000 23.1119 -00000000000000000000000000000000000000000000000000006bd6d6d6d6d6d6d6d6d6 23.1120 -d6d6d6d6d6d6d6d678000000000000000000000000000000000000000000000000000000 23.1121 -000000000000000000000dadd6d6d6d6d6d6d6bb35000000000000000000000000000000 23.1122 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1123 -0000000000000000000000003fcfffffffffffffffffffffffffffffff00000000000000 23.1124 -00000000000000000000000000000000000000000000004fffffffffffffffffffffffff 23.1125 -ffffffffffffffffff000000000000000000000000000000000000000000000000000000 23.1126 -0000008fffffffffffffffffffffffffffffffffffffffffffffffe69e58000000000000 23.1127 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1128 -00000d85d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d635000000000000000000000000 23.1129 -0000000000000000000000000000000000000000000000000028c8d6d6d6d6d6d6d6ac6c 23.1130 -130000000000000000000000000000000000000000000000000000000000000000000000 23.1131 -0000000000000000000000000000000000000000000000003fbfffffffffffffffffffff 23.1132 -ffffffffffffbf0000000000000000000000000000000000000000000000000000000000 23.1133 -007fffffffffffffffffffffffffffffffffffffffffbf00000000000000000000000000 23.1134 -0000000000000000000000000000000000bfffffffffffffffffffffffffffffffffffff 23.1135 -ffffffffffef310000000000000000000000000000000000000000000000000000000000 23.1136 -0000000000000000000000000000001aadd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1137 -d6bb0d000000000000000000000000000000000000000000000000000000000000000000 23.1138 -0000000050d6d6d6d6d6d6c49e9e9e6c2700000000000000000000000000000000000000 23.1139 -00000000000000000000000000000000000000000000000000000000000000000000000f 23.1140 -6fdfffffffffffffffffffffffffffffffffffff8f000000000000000000000000000000 23.1141 -000000000000000000000000000000bfffffffffffffffffffffffffffffffffffffffff 23.1142 -8f000000000000000000000000000000000000000000000000000000000000ffffffffff 23.1143 -ffffffffffffffffffffffffffffffffffffcf1f00000000000000000000000000000000 23.1144 -0000000000000000000000000000000000000000000000000000000028c8d6d6d6d6d6d6 23.1145 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d69300000000000000000000000000000000000000 23.1146 -0000000000000000000000000000000000000085d6d6d6d6d2a59e9e9e9e9e8a45130000 23.1147 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1148 -000000000000000000000f5fafffffffffffffffffffffffffffffffffffffffffff5f00 23.1149 -0000000000000000000000000000000000000000000000000000000000ffffffffffffff 23.1150 -ffffffffffffffffffffffffffff5f000000000000000000000000000000000000000000 23.1151 -00000000000000003fffffffffffffffffffffffffffffffffffffffffffff9f0f000000 23.1152 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1153 -000000000050d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d64200000000 23.1154 -00000000000000000000000000000000000000000000000000000000000000000000add6 23.1155 -d6d6b69e9e9e9e9e9e9e9e9e805831090000000000000000000000000000000000000000 23.1156 -00000000000000000000000000000000000000000f4f8fcfffffffffffffffffffffffff 23.1157 -ffffffffffffffffffffffff1f0000000000000000000000000000000000000000000000 23.1158 -0000000000002fffffffffffffffffffffffffffffffffffffffffff1f00000000000000 23.1159 -000000000000000000000000000000000000000000006fffffffffffffffffffffffffff 23.1160 -ffffffffffffffef5f000000000000000000000000000000000000000000000000000000 23.1161 -00000000000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1162 -d6d6d6d6d6d6d6d6d6c81a00000000000000000000000000000000000000000000000000 23.1163 -0000000000000000000000001ac8d6c89e9e9e9e9e9e9e9e9e9e9e9e9eaacf9f7f3f1f00 23.1164 -00000000000000000000000000000000000000000000000000000000002f3f7fafcfffff 23.1165 -ffffffffffffffffffffffffffffffffffffffffffffffffffef00000000000000000000 23.1166 -00000000000000000000000000000000000000006fffffffffffffffffffffffffffffff 23.1167 -ffffffffffef000000000000000000000000000000000000000000000000000000000000 23.1168 -9fffffffffffffffffffffffffffffffffffffffdf2f0000000000000000000000000000 23.1169 -0000000000000000000000000000000000000000000000000000000000000da0d6d6d6d6 23.1170 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6a00000000000000000000000 23.1171 -00000000000000000000000000000000000000000000000000000042d2a59e9e9e9e9e9e 23.1172 -9e9e9e9e9e9e9edaffffffffffffcfbf9f7f7f6f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f 23.1173 -7f7f7fafbfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1174 -ffffffdf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fbfff 23.1175 -ffffffffffffffffffffffffffffffffffffffdf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 23.1176 -7f7f7f7f7f7f7f7f7f7f7f7f7f7fdfffffffffffffffffffffffffffffffffffffaf0f00 23.1177 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1178 -0000000000000028bbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1179 -d6d6d65d0000000000000000000000000000000000000000000000000000000000000000 23.1180 -0000000000005f9e9e9e9e9e9e9e9e9e9e9e9e9eb6ffffffffffffffffffffffffffffff 23.1181 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1182 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1183 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1184 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1185 -ffffffffffffffffffff6f00000000000000000000000000000000000000000000000000 23.1186 -000000000000000000000000000000000000000050c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1187 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6280000000000000000000000000000000000 23.1188 -000000000000000000000000000000000000000000809e9e9e9e9e9e9e9e9e9e9e9eecff 23.1189 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1190 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1191 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1192 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1193 -ffffffffffffffffffffffffffffffffffffffffffffef2f000000000000000000000000 23.1194 -0000000000000000000000000000000000000000000000000000000000000000006bd6d6 23.1195 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad000000 23.1196 -000000000000000000000000000000000000000000000000000000000000000000000009 23.1197 -949e9e9e9e9e9e9e9e9e9ec8ffffffffffffffffffffffffffffffffffffffffffffffff 23.1198 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1199 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1200 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1201 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf 23.1202 -0f0000000000000000000000000000000000000000000000000000000000000000000000 23.1203 -0000000000000000000d93d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1204 -d6d6d6d6d6d6d6d6d6d6d678000000000000000000000000000000000000000000000000 23.1205 -0000000000000000000000000000279e9e9e9e9e9e9e9e9ea4f8ffffffffffffffffffff 23.1206 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1207 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1208 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1209 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1210 -ffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000 23.1211 -000000000000000000000000000000000000000000001aadd6d6d6d6d6d6d6d6d6d6d6d6 23.1212 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d635000000000000000000 23.1213 -00000000000000000000000000000000000000000000000000000000004f9e9e9e9e9e9e 23.1214 -9e9ee0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1215 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1216 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1217 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1218 -ffffffffffffffffffffffffffffffffffffffffffffffffef4f00000000000000000000 23.1219 -000000000000000000000000000000000000000000000000000000000000000000000035 23.1220 -c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1221 -d6d6d6d6bb0d000000000000000000000000000000000000000000000000000000000000 23.1222 -0000000000000000769e9e9e9e9e9ec2ffffffffffffffffffffffffffffffffffffffff 23.1223 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1224 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1225 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1226 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1227 -ffcf1f000000000000000000000000000000000000000000000000000000000000000000 23.1228 -0000000000000000000000005dd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1229 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d69300000000000000000000000000000000 23.1230 -00000000000000000000000000000000000000000000098a9e9e9e9eaaf8ffffffffffff 23.1231 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1232 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1233 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1234 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1235 -ffffffffffffffffffffffffffff9f000000000000000000000000000000000000000000 23.1236 -0000000000000000000000000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6 23.1237 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d64200 23.1238 -000000000000000000000000000000000000000000000000000000000000000000000000 23.1239 -001d9e9e9e9eecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1240 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1241 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1242 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1243 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffdf7f7f7f7f7f7f7f7f 23.1244 -7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f614f4f4f4f4f4f4f4f4f4f4f4f4f4f4f566b6b6b 23.1245 -6b6badd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1246 -d6d6d6d6d6d6d6d6d6d6d6d6c86b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b 23.1247 -6b6b674f4f4f4f4f4f4f4f4f4f4f4f4f8a9e9ed4ffffffffffffffffffffffffffffffff 23.1248 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1249 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1250 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1251 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1252 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e9e 23.1253 -9e9e9e9e9e9e9e9e9e9e9eb3d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1254 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1255 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2ffffff 23.1256 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1257 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1258 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1259 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1260 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1261 -ffffffffffffffffffe09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafd2d6d6d6d6d6d6d6d6 23.1262 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1263 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a19e9e9e9e9e9e 23.1264 -9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffffffffffffffffffffff 23.1265 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1266 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1267 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1268 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1269 -ffffffffffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e 23.1270 -9e9e9e9e9ea8cbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1271 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1272 -d6d6d6d6d6bd9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4f8ffffffffffffffffffffffff 23.1273 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1274 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1275 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1276 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1277 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1278 -ffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1279 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1280 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d2af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4 23.1281 -ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1282 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1283 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1284 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1285 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1286 -ffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1287 -b3d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1288 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e 23.1289 -9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffff 23.1290 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1291 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1292 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1293 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1294 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e 23.1295 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1296 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1297 -d6d6d6d6d6d6d2b69e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffffffffffff 23.1298 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1299 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1300 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1301 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1302 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1303 -ffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb3d2d6d6d6 23.1304 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1305 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1306 -9e9e9edaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1307 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1308 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1309 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1310 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1311 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e 23.1312 -9e9e9e9e9e9e9e9e9e9ea1bad6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1313 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfac9e9e9e 23.1314 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4daffffffffffffffffffffffffffffffffffffff 23.1315 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1316 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1317 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1318 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1319 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1320 -ffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6 23.1321 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1322 -d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffff 23.1323 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1324 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1325 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1326 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1327 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1328 -ffffffffffffffffffffffffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1329 -9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1330 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1331 -9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1332 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1333 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1334 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1335 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1336 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1337 -da9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bacfd6d6d6d6d6d6d6d6d6d6d6 23.1338 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8af9e9e9e 23.1339 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffff 23.1340 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1341 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1342 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1343 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1344 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1345 -ffffffffffffffffffffffffffffffeca49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1346 -9e9e9eafc1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1347 -d6d6d6d6d6d6cfbaa59e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2f8ffffff 23.1348 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1349 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1350 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1351 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1352 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1353 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8b09e9e9e9e 23.1354 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1afc1d2d6d6d6d6d6d6d6d6d6d6d6d6d6 23.1355 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cbbaa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1356 -9e9e9e9e9e9e9e9ed4ffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1357 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1358 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1359 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1360 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1361 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1362 -ffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1363 -9ea8b6c4cfd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8bdafa19e9e9e9e9e 23.1364 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaaecffffffffffffffffffffffffffff 23.1365 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1366 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1367 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1368 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1369 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1370 -ffffffffffffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e9e9e9e9e 23.1371 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1acb3bac4c8c8d6d6d6d6d6d6d6cfc8c8 23.1372 -bdbaafa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ebcf8ff 23.1373 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1374 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1375 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1376 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1377 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1378 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1379 -fffffffff8c89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1380 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1381 -9e9e9e9e9e9e9e9e9ea4e0ffffffffffffffffffffffffffffffffffffffffffffffffff 23.1382 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1383 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1384 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1385 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1386 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1387 -ffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1388 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1389 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2f8ffffffffffffffffffffffff 23.1390 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1391 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1392 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1393 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1394 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1395 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1396 -cea49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1397 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e6 23.1398 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1399 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1400 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1401 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1402 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1403 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1404 -fffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1405 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1406 -9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffffffffffff 23.1407 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1408 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1409 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1410 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1411 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1412 -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2c29e9e9e 23.1413 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1414 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffff 23.1415 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1416 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1417 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1418 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1419 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1420 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1421 -fffffffffffffffffffffff2c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1422 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaada 23.1423 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1424 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1425 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1426 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1427 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1428 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1429 -fffffffffffffffffffffffffffffffffffffffffffffffffffffff8ceaa9e9e9e9e9e9e 23.1430 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1431 -9e9e9e9e9e9e9e9e9e9eb6e0ffffffffffffffffffffffffffffffffffffffffffffffff 23.1432 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1433 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1434 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1435 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1436 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1437 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1438 -ffffffffffffffffe0bc9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1439 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8f2ffffffffffffffffffffffff 23.1440 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1441 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1442 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1443 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1444 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1445 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1446 -fffffffffffffffffffffffffffffffffffffffffffffffff8dabc9e9e9e9e9e9e9e9e9e 23.1447 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8ecff 23.1448 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1449 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1450 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1451 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1452 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1453 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1454 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1455 -fffffffffff8e0c2aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 23.1456 -9e9e9e9e9e9e9eb6d4ecffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1457 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1458 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1459 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1460 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1461 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1462 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1463 -fffffffffffffffffffffffffffffffffffffffffffffff2e0c8b6a49e9e9e9e9e9e9e9e 23.1464 -9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaabccee6ffffffffffffffffffffffffffffffff 23.1465 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1466 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1467 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1468 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1469 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1470 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1471 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1472 -fffffffffffff8e6d4cec2b6b6aa9e9e9e9e9e9e9e9eb6b6b6c8cee0e6ffffffffffffff 23.1473 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1474 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1475 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1476 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1477 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 23.1478 -ffffffffffffffffffffffffffffffffffffffffffffff 23.1479 -end 23.1480 -%%PageTrailer 23.1481 -%%Trailer 23.1482 -%%EOF
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 25.2 +++ b/docs/figs/xenlogo.eps Thu Feb 10 13:17:10 2005 +0000 25.3 @@ -0,0 +1,1479 @@ 25.4 +%!PS-Adobe-3.0 EPSF-3.0 25.5 +%%Creator: (ImageMagick) 25.6 +%%Title: (/homes/kaf24/xenlogo.eps) 25.7 +%%CreationDate: (Tue Oct 28 13:52:11 2003) 25.8 +%%BoundingBox: 155 324 445 461 25.9 +%%DocumentData: Clean7Bit 25.10 +%%LanguageLevel: 1 25.11 +%%Pages: 1 25.12 +%%EndComments 25.13 + 25.14 +%%BeginDefaults 25.15 +%%EndDefaults 25.16 + 25.17 +%%BeginProlog 25.18 +% 25.19 +% Display a color image. The image is displayed in color on 25.20 +% Postscript viewers or printers that support color, otherwise 25.21 +% it is displayed as grayscale. 25.22 +% 25.23 +/DirectClassPacket 25.24 +{ 25.25 + % 25.26 + % Get a DirectClass packet. 25.27 + % 25.28 + % Parameters: 25.29 + % red. 25.30 + % green. 25.31 + % blue. 25.32 + % length: number of pixels minus one of this color (optional). 25.33 + % 25.34 + currentfile color_packet readhexstring pop pop 25.35 + compression 0 eq 25.36 + { 25.37 + /number_pixels 3 def 25.38 + } 25.39 + { 25.40 + currentfile byte readhexstring pop 0 get 25.41 + /number_pixels exch 1 add 3 mul def 25.42 + } ifelse 25.43 + 0 3 number_pixels 1 sub 25.44 + { 25.45 + pixels exch color_packet putinterval 25.46 + } for 25.47 + pixels 0 number_pixels getinterval 25.48 +} bind def 25.49 + 25.50 +/DirectClassImage 25.51 +{ 25.52 + % 25.53 + % Display a DirectClass image. 25.54 + % 25.55 + systemdict /colorimage known 25.56 + { 25.57 + columns rows 8 25.58 + [ 25.59 + columns 0 0 25.60 + rows neg 0 rows 25.61 + ] 25.62 + { DirectClassPacket } false 3 colorimage 25.63 + } 25.64 + { 25.65 + % 25.66 + % No colorimage operator; convert to grayscale. 25.67 + % 25.68 + columns rows 8 25.69 + [ 25.70 + columns 0 0 25.71 + rows neg 0 rows 25.72 + ] 25.73 + { GrayDirectClassPacket } image 25.74 + } ifelse 25.75 +} bind def 25.76 + 25.77 +/GrayDirectClassPacket 25.78 +{ 25.79 + % 25.80 + % Get a DirectClass packet; convert to grayscale. 25.81 + % 25.82 + % Parameters: 25.83 + % red 25.84 + % green 25.85 + % blue 25.86 + % length: number of pixels minus one of this color (optional). 25.87 + % 25.88 + currentfile color_packet readhexstring pop pop 25.89 + color_packet 0 get 0.299 mul 25.90 + color_packet 1 get 0.587 mul add 25.91 + color_packet 2 get 0.114 mul add 25.92 + cvi 25.93 + /gray_packet exch def 25.94 + compression 0 eq 25.95 + { 25.96 + /number_pixels 1 def 25.97 + } 25.98 + { 25.99 + currentfile byte readhexstring pop 0 get 25.100 + /number_pixels exch 1 add def 25.101 + } ifelse 25.102 + 0 1 number_pixels 1 sub 25.103 + { 25.104 + pixels exch gray_packet put 25.105 + } for 25.106 + pixels 0 number_pixels getinterval 25.107 +} bind def 25.108 + 25.109 +/GrayPseudoClassPacket 25.110 +{ 25.111 + % 25.112 + % Get a PseudoClass packet; convert to grayscale. 25.113 + % 25.114 + % Parameters: 25.115 + % index: index into the colormap. 25.116 + % length: number of pixels minus one of this color (optional). 25.117 + % 25.118 + currentfile byte readhexstring pop 0 get 25.119 + /offset exch 3 mul def 25.120 + /color_packet colormap offset 3 getinterval def 25.121 + color_packet 0 get 0.299 mul 25.122 + color_packet 1 get 0.587 mul add 25.123 + color_packet 2 get 0.114 mul add 25.124 + cvi 25.125 + /gray_packet exch def 25.126 + compression 0 eq 25.127 + { 25.128 + /number_pixels 1 def 25.129 + } 25.130 + { 25.131 + currentfile byte readhexstring pop 0 get 25.132 + /number_pixels exch 1 add def 25.133 + } ifelse 25.134 + 0 1 number_pixels 1 sub 25.135 + { 25.136 + pixels exch gray_packet put 25.137 + } for 25.138 + pixels 0 number_pixels getinterval 25.139 +} bind def 25.140 + 25.141 +/PseudoClassPacket 25.142 +{ 25.143 + % 25.144 + % Get a PseudoClass packet. 25.145 + % 25.146 + % Parameters: 25.147 + % index: index into the colormap. 25.148 + % length: number of pixels minus one of this color (optional). 25.149 + % 25.150 + currentfile byte readhexstring pop 0 get 25.151 + /offset exch 3 mul def 25.152 + /color_packet colormap offset 3 getinterval def 25.153 + compression 0 eq 25.154 + { 25.155 + /number_pixels 3 def 25.156 + } 25.157 + { 25.158 + currentfile byte readhexstring pop 0 get 25.159 + /number_pixels exch 1 add 3 mul def 25.160 + } ifelse 25.161 + 0 3 number_pixels 1 sub 25.162 + { 25.163 + pixels exch color_packet putinterval 25.164 + } for 25.165 + pixels 0 number_pixels getinterval 25.166 +} bind def 25.167 + 25.168 +/PseudoClassImage 25.169 +{ 25.170 + % 25.171 + % Display a PseudoClass image. 25.172 + % 25.173 + % Parameters: 25.174 + % class: 0-PseudoClass or 1-Grayscale. 25.175 + % 25.176 + currentfile buffer readline pop 25.177 + token pop /class exch def pop 25.178 + class 0 gt 25.179 + { 25.180 + currentfile buffer readline pop 25.181 + token pop /depth exch def pop 25.182 + /grays columns 8 add depth sub depth mul 8 idiv string def 25.183 + columns rows depth 25.184 + [ 25.185 + columns 0 0 25.186 + rows neg 0 rows 25.187 + ] 25.188 + { currentfile grays readhexstring pop } image 25.189 + } 25.190 + { 25.191 + % 25.192 + % Parameters: 25.193 + % colors: number of colors in the colormap. 25.194 + % colormap: red, green, blue color packets. 25.195 + % 25.196 + currentfile buffer readline pop 25.197 + token pop /colors exch def pop 25.198 + /colors colors 3 mul def 25.199 + /colormap colors string def 25.200 + currentfile colormap readhexstring pop pop 25.201 + systemdict /colorimage known 25.202 + { 25.203 + columns rows 8 25.204 + [ 25.205 + columns 0 0 25.206 + rows neg 0 rows 25.207 + ] 25.208 + { PseudoClassPacket } false 3 colorimage 25.209 + } 25.210 + { 25.211 + % 25.212 + % No colorimage operator; convert to grayscale. 25.213 + % 25.214 + columns rows 8 25.215 + [ 25.216 + columns 0 0 25.217 + rows neg 0 rows 25.218 + ] 25.219 + { GrayPseudoClassPacket } image 25.220 + } ifelse 25.221 + } ifelse 25.222 +} bind def 25.223 + 25.224 +/DisplayImage 25.225 +{ 25.226 + % 25.227 + % Display a DirectClass or PseudoClass image. 25.228 + % 25.229 + % Parameters: 25.230 + % x & y translation. 25.231 + % x & y scale. 25.232 + % label pointsize. 25.233 + % image label. 25.234 + % image columns & rows. 25.235 + % class: 0-DirectClass or 1-PseudoClass. 25.236 + % compression: 0-none or 1-RunlengthEncoded. 25.237 + % hex color packets. 25.238 + % 25.239 + gsave 25.240 + /buffer 512 string def 25.241 + /byte 1 string def 25.242 + /color_packet 3 string def 25.243 + /pixels 768 string def 25.244 + 25.245 + currentfile buffer readline pop 25.246 + token pop /x exch def 25.247 + token pop /y exch def pop 25.248 + x y translate 25.249 + currentfile buffer readline pop 25.250 + token pop /x exch def 25.251 + token pop /y exch def pop 25.252 + currentfile buffer readline pop 25.253 + token pop /pointsize exch def pop 25.254 + /Times-Roman findfont pointsize scalefont setfont 25.255 + x y scale 25.256 + currentfile buffer readline pop 25.257 + token pop /columns exch def 25.258 + token pop /rows exch def pop 25.259 + currentfile buffer readline pop 25.260 + token pop /class exch def pop 25.261 + currentfile buffer readline pop 25.262 + token pop /compression exch def pop 25.263 + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse 25.264 + grestore 25.265 +} bind def 25.266 +%%EndProlog 25.267 +%%Page: 1 1 25.268 +%%PageBoundingBox: 155 324 445 461 25.269 +userdict begin 25.270 +DisplayImage 25.271 +155 324 25.272 +289.992 137.145 25.273 +12.000000 25.274 +302 143 25.275 +1 25.276 +1 25.277 +1 25.278 +8 25.279 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.280 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8e6 25.281 +d4cec2b6b6aa9e9e9e9e9e9e9e9eb6b6b6c8cee0e6ffffffffffffffffffffffffffffff 25.282 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.283 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.284 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.285 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.286 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.287 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.288 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.289 +fffffffffffffff2e0c8b6a49e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.290 +aabccee6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.291 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.292 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.293 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.294 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.295 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.296 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.297 +fffffffffffffffffffffffffffffffffff8e0c2aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.298 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6ceecffffffffffffffffffffffffffff 25.299 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.300 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.301 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.302 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.303 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.304 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.305 +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8dabc9e9e9e9e9e 25.306 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.307 +aac8ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.308 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.309 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.310 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.311 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.312 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.313 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.314 +ffffffffe0bc9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.315 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaac8f2ffffffffffffffffffffffffffffffff 25.316 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.317 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.318 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.319 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.320 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.321 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.322 +fffffffffffffffffffffffffffffff8ceaa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.323 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e0 25.324 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.325 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.326 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.327 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.328 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.329 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.330 +fffffffffffffffffffffffffffffffffffffffffffffffffffffff2c29e9e9e9e9e9e9e 25.331 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.332 +9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffff 25.333 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.334 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.335 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.336 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.337 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.338 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.339 +fffffff2c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.340 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaadaffffffff 25.341 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.342 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.343 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.344 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.345 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.346 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.347 +fffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.348 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.349 +9e9e9e9e9e9e9e9e9e9eaadaffffffffffffffffffffffffffffffffffffffffffffffff 25.350 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.351 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.352 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.353 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.354 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.355 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcea49e9e9e9e9e9e 25.356 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.357 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb6e6ffffffffffffffff 25.358 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.359 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.360 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.361 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.362 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.363 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.364 +ffffffffe6aa9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.365 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.366 +9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.367 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.368 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.369 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.370 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.371 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.372 +fffffffffffffffffffffffffffffffff8c29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.373 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.374 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4e0ffffffffffffffffffffffffff 25.375 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.376 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.377 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.378 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.379 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.380 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6aa9e9e9e9e9e 25.381 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1acb6bac4c8c8d6d6d6d6d6d6 25.382 +d6cfc8c8bdbaafa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.383 +9ebcf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.384 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.385 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.386 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.387 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.388 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.389 +ffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8b6c4 25.390 +cfd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8bdafa19e9e9e9e9e9e9e9e9e 25.391 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eaaecffffffffffffffffffffffffffffffffffff 25.392 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.393 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.394 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.395 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.396 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.397 +fffffffffffffffffffffffffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.398 +9e9e9e9e9e9e9ea1afc1d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.399 +d6d6d6d6d6cbbaa89e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ed4ffffff 25.400 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.401 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.402 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.403 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.404 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.405 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e 25.406 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafc1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.407 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfbaa59e9e9e9e9e9e9e9e9e9e9e 25.408 +9e9e9e9e9e9e9e9e9e9e9ec2f8ffffffffffffffffffffffffffffffffffffffffffffff 25.409 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.410 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.411 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.412 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.413 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.414 +ffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bacfd6d6d6 25.415 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.416 +d6d6d6c8af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffff 25.417 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.418 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.419 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.420 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.421 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.422 +ffffffffffffffffffffffffffffffffffffffffffc89e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.423 +9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.424 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfb39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.425 +9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.426 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.427 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.428 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.429 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.430 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e 25.431 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.432 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cf 25.433 +b39e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffff 25.434 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.435 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.436 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.437 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.438 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.439 +ffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea1bdd6d6d6d6 25.440 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.441 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cfaf9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4 25.442 +daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.443 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.444 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.445 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.446 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.447 +ffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e 25.448 +9e9e9e9e9e9e9eb3d2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.449 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e 25.450 +9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffffffffffffffffffffffffffffffffff 25.451 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.452 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.453 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.454 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.455 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.456 +ffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea5c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.457 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.458 +d6d6d6d6d6d6d6d6d6d6d2b69e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9edaffffffffff 25.459 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.460 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.461 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.462 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.463 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.464 +ffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb3d2d6d6 25.465 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.466 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c8a59e9e9e9e9e9e9e9e 25.467 +9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffffffffffffffffffffffffffffffffff 25.468 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.469 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.470 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.471 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.472 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e 25.473 +9e9e9e9e9e9e9e9ea1c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.474 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.475 +d6d6d6d6d6d2af9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea4ecffffffffffffffffffffff 25.476 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.477 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.478 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.479 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.480 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.481 +ffffffffda9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ea8cbd6d6d6d6d6d6d6d6d6d6d6d6d6 25.482 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.483 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6bd9e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.484 +9e9ea4f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.485 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.486 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.487 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.488 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.489 +ffffffffffffffffffffffffffffffffffe09e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9eafd2 25.490 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.491 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.492 +c8a19e9e9e9e9e9e9e9e9e9e9e9e9e9e9eb0f8ffffffffffffffffffffffffffffffffff 25.493 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.494 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.495 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.496 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.497 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeca49e9e9e9e 25.498 +9e9e9e9e9e9e9e9e9e9e9eb3d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.499 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.500 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6cba89e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec2ffffff 25.501 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.502 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.503 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.504 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.505 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.506 +fffffffffffffff8b09e9e9e9e9e9e9e9e9e9e9e9e9e9e9ec1d6d6d6d6d6d6d6d6d6d6d6 25.507 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.508 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d2a89e9e9e9e 25.509 +9e9e9e9e9e9e9e9e9e9e9ed4ffffffffffffffffffffffffffffffffffffffffffffffff 25.510 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.511 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.512 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.513 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.514 +ffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9e9e9e 25.515 +9ec1d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.516 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.517 +d6d6d6d6d6d6d6d6d6d2a89e9e9e9e9e9e9e9e9e9e9e9e9e9e9eecffffffffffffffffff 25.518 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.519 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.520 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.521 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.522 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda9e 25.523 +9e9e8027272727272727272727272b353535353535353535353535353535353535353535 25.524 +353535353535add6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.525 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c85035353535353535322727272727272727272727 25.526 +272727272d3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f5fefffffffffffffffffff 25.527 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.528 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.529 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.530 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.531 +fffffffffffffffffffffff2a49e9e9e9e45000000000000000000000000000000000000 25.532 +00000000000000000000000000000000000000001ac8d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.533 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad28000000000000 25.534 +000000000000000000000000000000000000000000000000000000000000000000000000 25.535 +00003fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.536 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.537 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.538 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.539 +ffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e27000000 25.540 +000000000000000000000000000000000000000000000000000000000000000000000050 25.541 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.542 +d6d6d6d6d6930d0000000000000000000000000000000000000000000000000000000000 25.543 +0000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffff 25.544 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.545 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.546 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.547 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.548 +ffffd49e9e9e9e9e9e9e9413000000000000000000000000000000000000000000000000 25.549 +000000000000000000000000000085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.550 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d66b0000000000000000000000000000000000 25.551 +0000000000000000000000000000000000000000000000000000000fbfffffffffffffff 25.552 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.553 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.554 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.555 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.556 +fffffffffffffffffffffffffffffff8a49e9e9e9e9e9e9e9e8009000000000000000000 25.557 +000000000000000000000000000000000000000000000000000000000dadd6d6d6d6d6d6 25.558 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000 25.559 +000000000000000000000000000000000000000000000000000000000000000000000000 25.560 +000000002fdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.561 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.562 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.563 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.564 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e 25.565 +9e9e9e9e6200000000000000000000000000000000000000000000000000000000000000 25.566 +0000000000000028c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.567 +d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000000000000000000000 25.568 +00000000000000000000000000000000006fffffffffffffffffffffffffffffffffffff 25.569 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.570 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.571 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.572 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.573 +ffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e4500000000000000000000000000000000 25.574 +0000000000000000000000000000000000000000000050d6d6d6d6d6d6d6d6d6d6d6d6d6 25.575 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000 25.576 +00000000000000000000000000000000000000000000000000000000000fafffffffffff 25.577 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.578 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.579 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.580 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.581 +ffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9e9e9e2b00 25.582 +000000000000000000000000000000000000000000000000000000000000000000000000 25.583 +0085d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000 25.584 +000000000000000000000000000000000000000000000000000000000000000000000000 25.585 +0000000000002fcfffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.586 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.587 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.588 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.589 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09e9e 25.590 +9e9e9e9e9e9e9e9e9e9e9ea8c81a00000000000000000000000000000000000000000000 25.591 +0000000000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.592 +d6d6d6d6d6d6d6d6d6c83500000000000000000000000000000000000000000000000000 25.593 +000000000000000000000000000000000000005fefffffffffffffffffffffffffffffff 25.594 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.595 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.596 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.597 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.598 +ffffffffffffffffffffffaa9e9e9e9e9e9e9e9e9e9e9e9e9ecbd6ad0d00000000000000 25.599 +00000000000000000000000000000000000000000000000000000000000028d6d6d6d6d6 25.600 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000 25.601 +00000000000000000000000000000000000000000000000000000000000000009fffffff 25.602 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.603 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.604 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.605 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.606 +ffffffffffffffffffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e 25.607 +9e9ebad6d6d6850000000000000000000000000000000000000000000000000000000000 25.608 +0000000000000000005dd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d685 25.609 +0d0000000000000000000000000000000000000000000000000000000000000000000000 25.610 +00000000000000001fcfffffffffffffffffffffffffffffffffffffffffffffffffffff 25.611 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.612 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.613 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.614 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.615 +ffffaa9e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d65d0000000000000000000000000000 25.616 +00000000000000000000000000000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6 25.617 +d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000000000000000000000000000000000 25.618 +00000000000000000000000000000000000000000049efffffffffffffffffffffffffff 25.619 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.620 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.621 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.622 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.623 +ffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9e9ec8d6d6d6d6d6d6 25.624 +350000000000000000000000000000000000000000000000000000000000000000000000 25.625 +00000dbbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c83500000000000000000000 25.626 +000000000000000000000000000000000000000000000000000000000000000000004faa 25.627 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.628 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.629 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.630 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.631 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb69e9e9e9e9e9e 25.632 +9e9e9e9e9e9eacd6d6d6d6d6d6d6c81a0000000000000000000000000000000000000000 25.633 +000000000000000000000000000000000028d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.634 +d6ad1a000000000000000000000000000000000000000000000000000000000000000000 25.635 +0000000000000000000009769e9ee0ffffffffffffffffffffffffffffffffffffffffff 25.636 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.637 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.638 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.639 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.640 +fffffffffffff29e9e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6ad0d0000000000 25.641 +00000000000000000000000000000000000000000000000000000000000000005dd6d6d6 25.642 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6850d0000000000000000000000000000000000000000 25.643 +00000000000000000000000000000000000000000000001d949e9e9eb6ffffffffffffff 25.644 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.645 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.646 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.647 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.648 +ffffffffffffffffffffffffffffffffffffffffc29e9e9e9e9e9e9e9e9e9e9e9eb3d6d6 25.649 +d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000000000000000 25.650 +000000000000000000000093d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65d0000000000000000 25.651 +000000000000000000000000000000000000000000000000000000000000000000000000 25.652 +459e9e9e9e9e9ef2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.653 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.654 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.655 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.656 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa49e 25.657 +9e9e9e9e9e9e9e9e9e9e9ecfd6d6d6d6d6d6d6d6d6d6d65d000000000000000000000000 25.658 +000000000000000000000000000000000000000000000000000dbbd6d6d6d6d6d6d6d6d6 25.659 +d6d6d6c83500000000000000000000000000000000000000000000000000000000000000 25.660 +000000000000000000000000096c9e9e9e9e9e9e9ec8ffffffffffffffffffffffffffff 25.661 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.662 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.663 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.664 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.665 +ffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9eacd6d6d6d6d6d6d6d6d6d6d6 25.666 +d6d635000000000000000000000000000000000000000000000000000000000000000000 25.667 +0000000035d6d6d6d6d6d6d6d6d6d6d6ad1a000000000000000000000000000000000000 25.668 +000000000000000000000000000000000000000000000000001d8a9e9e9e9e9e9e9e9eaa 25.669 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.670 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.671 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.672 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.673 +ffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e9e9e9e9e9e 25.674 +9e9ec8d6d6d6d6d6d6d6d6d6d6d6d6d6c81a000000000000000000000000000000000000 25.675 +000000000000000000000000000000000000006bd6d6d6d6d6d6d6d6d6850d0000000000 25.676 +000000000000000000000000000000000000000000000000000000000000000000000000 25.677 +00003b949e9e9e9e9e9e9e9e9e9ee0ffffffffffffffffffffffffffffffffffffffffff 25.678 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.679 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.680 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.681 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.682 +fffff89e9e9e9e9e9e9e9e9e9e9e9ea5d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0d000000 25.683 +00000000000000000000000000000000000000000000000000000000000000000000a0d6 25.684 +d6d6d6d6d6d65d0000000000000000000000000000000000000000000000000000000000 25.685 +00000000000000000000000000000d7b9e9e9e9e9e9e9e9e9e9e9e9ec2ffffffffffffff 25.686 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.687 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.688 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.689 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.690 +ffffffffffffffffffffffffffffffffda9e9e9e9e9e9e9e9e9e9e9e9ebdd6d6d6d6d6d6 25.691 +d6d6d6d6d6d6d6d6d6d68500000000000000000000000000000000000000000000000000 25.692 +0000000000000000000000000dc8d6d6d6d6c83500000000000000000000000000000000 25.693 +0000000000000000000000000000000000000000000000000000001aadd6a59e9e9e9e9e 25.694 +9e9e9e9e9e9ea4ffffffffffffffdfbf8f7f5f3f3f1f0000000000000000000000000000 25.695 +001f3f3f5f7f8fbfcfffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.696 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.697 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.698 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc9e9e9e9e9e 25.699 +9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d65000000000000000000000 25.700 +00000000000000000000000000000000000000000000000000000035d6d6d6ad0d000000 25.701 +000000000000000000000000000000000000000000000000000000000000000000000000 25.702 +0000000042c8d6d6bd9e9e9e9e9e9e9e9e9e9e9e9ee6ffcf9f5f3f000000000000000000 25.703 +0000000000000000000000000000000000000000000000002f5f8fcfffffffffffffffff 25.704 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 25.705 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf8f7f 25.706 +3f3f0f000000000000000000003f3f7f9fdfffffffffffffffffffffffffffffffffffff 25.707 +ffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.708 +d6d6d6d62800000000000000000000000000000000000000000000000000000000000000 25.709 +0000000000006bd685000000000000000000000000000000000000000000000000000000 25.710 +000000000000000000000000000000000078d6d6d6d6cf9e9e9e9e9e9e9e9e9e9e9e6c47 25.711 +1f0000000000000000000000000000000000000000000000000000000000000000000000 25.712 +0000000000000f4f9fdfffffffffffffffffffffffffffffffffffffffffffffffffffff 25.713 +ffbf3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fefffffffffff 25.714 +ffffffffffffffaf6f2f000000000000000000000000000000000000000000001f6fcfff 25.715 +ffffffffffffffffffffffffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ec1d6 25.716 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d00000000000000000000000000000000 25.717 +000000000000000000000000000000000000000000350000000000000000000000000000 25.718 +00000000000000000000000000000000000000000000000000000000000da0d6d6d6d6d6 25.719 +d6a89e9e9e9e9e9e9e763b09000000000000000000000000000000000000000000000000 25.720 +0000000000000000000000000000000000000000000000004f9fffffffffffffffffffff 25.721 +ffffffffffffffffffffffffffffff6f0000000000000000000000000000000000000000 25.722 +000000000000001fffffffffffffffffffff9f4f00000000000000000000000000000000 25.723 +000000000000000000000000003fafffffffffffffffffffffffffffffffffffffffffce 25.724 +9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad0000 25.725 +000000000000000000000000000000000000000000000000000000000000000000000000 25.726 +000000000000000000000000000000000000000000000000000000000000000000000000 25.727 +00000000000035c8d6d6d6d6d6d6d6bd9e9e9e9e94621300000000000000000000000000 25.728 +000000000000000000000000000000000000000000000000000000000000000000000000 25.729 +000000000f7fefffffffffffffffffffffffffffffffffffffffffffff3f000000000000 25.730 +0000000000000000000000000000000000000000004fffffffffffffffdf6f0f00000000 25.731 +00000000000000000000000000000000000000000000000000000000003fdfffffffffff 25.732 +ffffffffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6 25.733 +d6d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000 25.734 +000000000000000000000000000000000000000000000000000000000000000000000000 25.735 +000000000000000000000000000000000000005dd6d6d6d6d6d6d6d6d6cf9e9e944f0900 25.736 +000000000000000000000000000000000000000000000000000000000000000000000000 25.737 +00000000000000000000000000000000000000000f8fffffffffffffffffffffffffffff 25.738 +ffffffffffffff000000000000000000000000000000000000000000000000000000008f 25.739 +ffffffffffdf5f0000000000000000000000000000000000000000000000000000000000 25.740 +00000000000000000f9fffffffffffffffffffffffffffffffffff9e9e9e9e9e9e9e9e9e 25.741 +9e9e9ebdd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6500000000000000000 25.742 +000000000000000000000000000000000000000000000000000000000000000000000000 25.743 +000000000000000000000000000000000000000000000000000000000000000d93d6d6d6 25.744 +d6d6d6d6d6d6d6d69b4f0900000000000000000000000000000000000000000000000000 25.745 +000000000000000000000000000000000000000000000000000000000000000000000000 25.746 +2fcfffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000 25.747 +00000000000000000000000000bfffffffef5f0000000000000000000000000000000000 25.748 +0000000000000000000000000000000000000000000000009fffffffffffffffffffffff 25.749 +ffffffffe69e9e9e9e9e9e9e9e9e9e9e9ecbd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.750 +d6d6d6d6d6d6280000000000000000000000000000000000000000000000000000000000 25.751 +000000000000000000000000000000000000000000000000000000000000000000000000 25.752 +000000000000000028bbd6d6d6d6d6d6d6d6d6d6d6850d00000000000000000000000000 25.753 +000000000000000000000000000000000000000000000000000000000000000000000000 25.754 +0000000000000000000000000000000f9fffffffffffffffffffffffffffffffffff8f00 25.755 +000000000000000000000000000000000000000000000000000000ffffff8f0f00000000 25.756 +000000000000000000000000000000000000000000000000000000000000000000000000 25.757 +0000009fffffffffffffffffffffffffffffd49e9e9e9e9e9e9e9e9e9e9ea1d6d6d6d6d6 25.758 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d0000000000000000000000000000 25.759 +000000000000000000000000000000000000000000000000000000000000000000000000 25.760 +00000000000000000000000000000000000000000050c8d6d6d6d6d6d6d6d6d6d6ad3500 25.761 +000000000000000000000000000000000000000000000000000000000000000000000000 25.762 +000000000000000000000000000000000000000000000000000000000000006fffffffff 25.763 +ffffffffffffffffffffffff5f0000000000000000000000000000000000000000000000 25.764 +000000003fffef3f00000000000000000000000000000000000000000000000000000000 25.765 +000000000000000000000000000000000000bfffffffffffffffffffffffffffc89e9e9e 25.766 +9e9e9e9e9e9e9e9eafd6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6ad 25.767 +000000000000000000000000000000000000000000000000000000000000000000000000 25.768 +0000000000000000000000000000000000000000000000000000000000000000000d85d6 25.769 +d6d6d6d6d6d6d6d6d6d66b00000000000000000000000000000000000000000000000000 25.770 +000000000000000000000000000000000000000000000000000000000000000000000000 25.771 +000000000000000000005fffffffffffffffffffffffffffffff1f000000000000000000 25.772 +0000000000000000000000000000000000006fbf0f000000000000000000000000000000 25.773 +00000000000000000000000000000000000000000000000000000000000000001fffffff 25.774 +ffffffffffffffffffffb69e9e9e9e9e9e9e9e9e9e9ebad6d6d6d6d6d6d6d6d6d6d6d6d6 25.775 +d6d6d6d6d6d6d6d6d6d6d6d6d6d685000000000000000000000000000000000000000000 25.776 +000000000000000000000000000000000000000000000000000000000000000000000000 25.777 +0000000000000000000028add6d6d6d6d6d6d6d6d6d6c835000000000000000000000000 25.778 +000000000000000000000000000000000000000000000000000000000000000000000000 25.779 +000000000000000000000000000000000000000000000000005fffffffffffffffffffff 25.780 +ffffffef000000000000000000000000000000000000000000000000000000003f000000 25.781 +000000000000000000000000000000000000000000000000000000000000000000000000 25.782 +00000000000000000000009fffffffffffffffffffffffffa49e9e9e9e9e9e9e9e9e9e9e 25.783 +c8d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d650000000000000 25.784 +000000000000000000000000000000000000000000000000000000000000000000000000 25.785 +000000000000000000000000000000000000000000000042c8d6d6d6d6d6d6d6d6d6d6ad 25.786 +0d0000000000000000000000000000000000000000000000000000000000000000000000 25.787 +000000000000000000000000000000000000000000000000000000000000000000000000 25.788 +000000007fffffffffffffffffffffffffaf000000000000000000000000000000000000 25.789 +000000000000000000000000000000000000000000000000000000000000000000000000 25.790 +000000000000000000000000000000000000000000000000002fffffffffffffffffffff 25.791 +ffff9e9e9e9e9e9e9e9e9e9e9e9ed2d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 25.792 +d6d6d6d6d6d6d6d628000000000000000000000000000000000000000000000000000000 25.793 +000000000000000000000000000000000000000000000000000000000000000000000000 25.794 +78d6d6d6d6d6d6d6d6d6d6d6850000000000000000000000000000000000000000000000 25.795 +000000000000000000000000001f3f3f3f3f3f3f00000000000000000000000000000000 25.796 +00000000000000000000000000000000000000bfffffffffffffffffffffff7f00000000 25.797 +000000000000000000000000000000000000000000000000000000000000000000000000 25.798 +000000000000000000000000000000000000000000000000000000000000000000000000 25.799 +00000000dfffffffffffffffffffffe69e9e9e9e9e9e9e9e9e9e9e9ed6d6d6d6d6d6d6d6 25.800 +d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c80d000000000000000000000000 25.801 +000000000000000000000000000000000000000000000000000000000000000000000000 25.802 +0000000000000000000000000dadd6d6d6d6d6d6d6d6d6d6d68500000000000000000000 25.803 +00000000000000000000000000000000000000000000000f5fafefffffffffffffffffcf 25.804 +8f2f000000000000000000000000000000000000000000000000000000000000001fefff 25.805 +ffffffffffffffffff3f0000000000000000000000000000000000000000000000000000